系统无法正常启动的解决之道

author author     2022-08-05     442

关键词:


先来看下配置文件的格式:

[[email protected] ~]# uname -r
2.6.32-642.el6.x86_64
[[email protected] ~]# cat /boot/grub/grub.conf 
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda2
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0  
timeout=5  
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS 6 (2.6.32-642.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=UUID=a60b5a4a-0be1-44b6-bce3-363d117f52b7 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-642.el6.x86_64.img

grub最重要的是识别磁盘信息:(hd0,0)

1,硬盘代号以小括号()括起来

2,硬盘以hd表示,后面会跟一组数字,数字之间以逗号隔开

3,是以搜到的顺序来作为磁盘的编号,而非根据磁盘的排线编号(多硬盘情况,搜寻的次序是根据bios中设置的启动顺序,而非插槽编号)

4,第一个搜寻到的磁盘编号为0,第二个为1,以此类推

5,每快磁盘上的第一个分区编号为0,第二个分区为1,以此类推

因此,(hd0,0)表示第一块磁盘上的第一分区


default=0    默认的启动条目,假如同时装有多个操作系统,0表示定义的第一个title系统,1表示           定义的第二个title系统,以此类推

timeout=5    表示可供选择的等待时间,如果超过5秒钟,则使用默认的启动条目default定义的

splashimage=(hd0,0)/grub/splash.xpm.gz    定义启动时的背景图片信息

hiddenmenu    启动时是否要宣示菜单,默认情况下是不显示菜单信息,如果想要显示菜单,可将该配置信息注释即可(行首加#);所谓显示菜单就是下面的信息:

技术分享

title   定义各个操作系统的名称

root  表示内核文件存放的位置,这里所指的是分区位置,而非 / 目录

kernel  内核的名称以及一些启动时的核心参数。由于启动过程中需要挂载根目录,因此就需要指定根       目录所在的分区。rhgb表示彩色显示,quiet表示静默模式加载内核

initrd  虚拟文件系统


grub.conf文件的配置方法:

default:  设定默认启动的内核或操作系统

timeout:  超时时长;单位是秒

splashimage:grub  菜单的背景图片(可选)

      图片:xpm格式,压缩为zip,14bits颜色,640X480

      需安装gimp图片编辑工具

hiddenmenu: 隐藏选择菜单(可选)

title  定义一个操作系统或内核

root: 指明引导当前操作系统或内核文件所在分区

kernel: 内核文件路径、根文件系统所在设备,以及传递给内核的参数

initrd: 指明用于辅助内核完成系统启动的ramdisk文件路径再次在内存缓存


实验:

一,设置密码保护编辑功能(在title前面

在grub.conf配置文件里的title之上添加password --md5 “加密后的密码”即可

技术分享

生成密码的方式:在vim末行模式下,输入该命令,当光标自动跳到行首时,输入密码后按回车,再输入一次密码后按回车,即生成密码

技术分享

以后每次开机想要进入菜单进行编辑时,需要输入密码:

技术分享


二,设置密码保护内核(在title之内

在grub.conf配置文件里的title之内添加password --md5 “加密后的密码”即可

技术分享

生成密码的方式:在vim末行模式下,输入该命令,当光标自动跳到行首时,输入密码后按回车,再输入一次密码后按回车,即生成密码

技术分享

以后每次开机进入系统时,需要输入密码:

技术分享


三,损坏grub.conf文件后的恢复

技术分享


四,在分区情况下,删除并恢复 /boot 和 /etc/fstab(友情提示:先做快照备份)

1,先查看下本机的分区情况和相关配置文件/etc/fstab, /boot/grub/grub.conf

技术分享


2,删除 /boot 和 /etc/fstab,并重启系统

技术分享


3,由于删除了/boot 和 /etc/fstab,系统找不到启动分区和kernel,就要进入救援模式,提示系统没

有分区,故要先创建分区


技术分享


4,创建/boot 和 /etc/fstab

技术分享

技术分享


5,创建grub的配置文件

技术分享

技术分享


6,重启系统,又回到熟悉的界面


五,在逻辑卷情况下,删除并恢复 /boot 和 /etc/fstab(友情提示:先做快照备份)

1,先查看下本机的分区情况和相关配置文件/etc/fstab, /boot/grub/grub.conf

技术分享


2,删除 /boot 和 /etc/fstab,并重启系统

技术分享


3,由于删除了/boot 和 /etc/fstab,系统找不到启动分区和kernel,就要进入救援模式,提示系统没

有分区,故要先创建分区


技术分享


4,创建/boot 和 /etc/fstab

技术分享


5,创建grub的配置文件

技术分享

技术分享


6,重启系统,又回到熟悉的界面


六,在U盘上自制linux

1、给U盘分区并创建文件系统

  # fdisk/dev/sdb

  /dev/sdb1对应 /boot /dev/sdb2对应 /

  # mkfs.ext4 /dev/sdb1

  # mkfs.ext4 /dev/sdb2


2、挂载U盘的 /boot和 /

  # mkdir /mnt/boot

  # mkdir /mnt/sysroot

  # mount /sdb1  /mnt/boot

  # mount /sdb2  /mnt/sysroot


3、安装grub至U盘

  # grub-install --root-directory=/mnt /dev/sdb

    

4、复制内核和initrd文件至U盘

  # cp /boot/vmlinuz-Version  /mnt/boot/vmlinuz

  # cp /boot/initramfs-Version.img  /mnt/boot/iniyramfs.img


5、创建目标文件的根系统文件至U盘

  # mkdir -pv /mnt/sysroot/{etc/rc.d,usr,var,proc,sys,dev,lib,lib64,bin,sbin,boot,src,mnt,media,home,root}

6、移植bash等至U盘的根文件系统

  # bash copy.sh   

   脚本内容如下:

  #!/bin/bash

ch_root="/mnt/sysroot/"

[ ! -d $ch_root ] && mkdir $ch_root

bincopy() {

   if which $1 &>/dev/null;then

      local cmd_path=`which --skip-alias $1`

      local bin_dir=`dirname $cmd_path`

      [ -d ${ch_root}${bin_dir} ] || mkdir -p ${ch_root}${bin_dir}

      [ -f ${ch_root}${cmd_path} ] || cp $cmd_path ${ch_root}${bin_dir}

      return 0

   else

      echo "Command not found"

      return

   fi

}

libcopy() {

   local lib_list=$(ldd `which --skip-alias $1` | grep -Eo ‘/[^[:space:]]+‘)

   for loop in $lib_list;do

       local lib_dir=`dirname $loop`

       [ -d ${ch_root}${lib_dir} ] || mkdir -p ${ch_root}${lib_dir}

       [ -f ${ch_root}${loop} ] || cp $loop ${ch_root}${lib_dir}

   done

}

read -p "Please input a command:" command

while [ "$command" != "quit" ];do

    if bincopy $command;then

         libcopy $command

    fi

    read -p "Please input a command or quit:" command

done


7、为U盘创建文件系统的配置文件

 # vim /mnt/sysroot/etc/fstab

   /dev/sda1 /boot ext4 defaults 1 1

   /dev/sda2  /    ext4 defaults 1 2

8、为U盘的grub提供配置文件

  # vim /mnt/boot/grub/grub.conf

    default=0

    timeout=5

    title

        root(hd0,0)

     kernel /vmlinuz ro root=/dev/sda2 selinux=0 init=/bin/bash

     initrd /initramfs.img


win7电脑开机无法正常启动怎么办

...脑显示“Windows无法成功启动”的错误消息,通常意味着系统存在某种故障或问题,导致Windows无法正常启动。以下是一些可能的原因和解决方案:损坏的系统文件:在某些情况下,Windows启动时可能会遇到损坏或缺失的系统文件,... 查看详情

修复initramfs文件及忘记root密码的解决之道

...sp; 友情提示:实验前先做快照,避免误操作导致机器无法正常启动启动文件介绍: 核心文件:/boot/vmlinuz-VERSION-release ramdisk:辅助的伪根系统 CentOS5:/boot/initrd-VERSION-release.img CentOS6,7:/bo 查看详情

文件系统损坏导致虚拟机无法正常启动的问题及解决方法

参考技术A简介计算机的文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易,文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,用户使用文件系统来保存... 查看详情

如何解决虚拟机系统无法正常启动窗口

参考技术A虚机状态无法改变,任务停止在启动过程中、比如还有删除快照的时候感觉好像进程是死在那里,任务列表显示Poweronvirtualmachine:inprogress一直不结束,虚拟机的各种按钮都是灰色的,仅有电源按钮处于按下的状态,无... 查看详情

c盘压缩,电脑无法正常启动的解决方法?

...资料,发现很多人都遇到过类似的问题,如果你不想重装系统的话,那么,现在我说一下我的解决方式,希望可以帮到你们,好了,废话不多说,进入正题。一、制作U盘启动盘1、制作U盘启动盘,首先准备一个U盘,最好是大于1G... 查看详情

应用程序无法正常启动0xc00000006

...继续尝试下面的方法。2,可能是安装的第3方软件引起的系统异常。建议可以杀毒试试,或者卸载最近安装的可疑软件,也可以尝试在安全模式下启动软件,排查第三方软件的干扰。3,NETFramework版本太低,或者没有安装。那么只... 查看详情

电脑打开软件应用程序无法启动

...电脑,然后点击开始菜单→运行→输入msconfig回车,调出系统配置实用程序对话框。应用程序错误无法正常启动0xc0000142的解决办法  2、然后点击启动项,对话框里加载项中可疑xx.dll前面的勾去掉,点击确定,选择重启电脑一... 查看详情

应用程序无法正常启动(0xc0000022)怎么解决?

...程序的开机启动去掉。如果查不出来或提示的不是程序是系统进程,你可以回忆一下,当你出现这种故障前你都下载了什么程序软件、插件、补丁或是驱动,如果想起先将它们全部卸载试试(如果是在打开游戏时出现的提示,可... 查看详情

windowsxp安装失败的原因?

A.使用U盘、光盘或进入PE系统安装操作系统时,出现“无法安装到硬盘”提示,无法正常安装操作系统的现象。【一般来说出现该现象时,不论是光盘引导安装还是进入PE系统安装,都会出现无法安装的现象,即便通过PE工具强行... 查看详情

mysql8.0无法正常启动怎么解决?

...搞定即可,一直没有深入研究,下次一定把图和故障现象系统归纳一下。本文先列一下常见的解决方法。启动mysql服务出现如下的错误信息(MySQL服务无法启动):本地计算机无法启动mysql服务。错误1067:进程意外终止。解决方案:... 查看详情

电脑windows无法启动如何处理?

...无法启动windows的时候,我们可以尝试进入安全模式修复系统。开机启动电脑,在系统进入windows启动画面前,连续按F8键。2、在出现的高级启动菜单界面中,选择“安全模式”即可。PS:系统的安全模式是用于修复操作系统错误... 查看详情

已解决datanode无法正常启动解决方案(代码片段)

   1.原因一  在start-all.sh之后DataNode无法正常启动,单独启动也启动不了        可能的原因  多次格式化,导致NameNode和DataNode的集群id不匹配 DataNode无法启动   验证  查看对应主机的相关日... 查看详情

centos8断电后无法正常启动

今天在虚拟机上一直运行着CentOS系统,电脑突然关机后,重启虚拟机系统就变成如下: 看报错应该是设备出现了问题。在网上搜寻了一大串资料,用了如下的解决方法:找出/dev/dm-0对应的文件系统本机为/dev/mapper/cl_python-root... 查看详情

安装rabbitmq启动运行出现服务无法启动发生系统错误1067解决方案

  造成此原因是因为电脑名称为中文字符造成的,把电脑名称改为英文字符正常解决  查看详情

解决虚拟内存设置错误导致的系统蓝屏无法启动问题

一次偶然设置虚拟内存由于设置过大导致系统重启后蓝屏,进入无限系统修复界面,但怎么修复都无法正常进入系统,修复过程如下: 首先得有个Ghost系统U盘,制作方法百度。然后开机进入U盘引导,进入Ghost系统①  ... 查看详情

我的电脑开机时候显示windows无法正常启动我点击了修复

如果Windows系统无法启动,可能是由于许多原因引起的,包括硬件故障、操作系统损坏、驱动程序问题等。以下是一些可能的解决方案:检查硬件问题:首先,检查电脑的电源、数据线和内存条等硬件是否工作正常。如果有问题... 查看详情

电脑显示应用程序无法正常启动怎么解决?

...开电脑,然后点击开始菜单→运行→输入msconfig回车,调出系统配置实用程序对话框。2.然后点击启动项,对话框里加载项中可疑xx.dll前面的勾去掉,点击确定,选择重启电脑一般...3.如果问题还没有解决,可用注册表修改法:用同样方法,... 查看详情

win7电脑开机无法正常启动只能进入安全模式解决方式

...后根据以下方式来进行一次干净启动。  步骤1:启动系统配置实用程序  1、使用具有管理员权限的帐户登录到计算机。  2、单击“开始 查看详情