启动linux操作系统时,有时会因为误操作而导致系统无法正常启动,而这些误操作很多都跟grub有关,这里我们就这种情况进行一下简单的模拟并解决无法正常启动的问题。首先我们先看一下linux的启动流程图:

 

 

模拟Linux开机故障与解决方案_linux故障排错

 

 

(一)

   模拟第一个阶段失效与修复

  我们利用一条命令来把MBR的前446字节覆盖的方法来模拟第一阶段

     Dd if=/dev/zero  of=/dev/sda  bs=446 count=1

然后我们重启linux系统,此时只会这个界面,而进不去系统了

模拟Linux开机故障与解决方案_linux故障排错_02

接下来我们就要想办法来使系统恢复正常了,首先我们要把光盘加入光驱,然后重新启动,以光盘进行引导。此时会出现这样的界面:

模拟Linux开机故障与解决方案_linux故障排错_03

然后,我们要进入救援模式进行修复系统。在boot:后面输入一条命令就进入了救援模式:

  Linux rescue 此时会进入如图的界面

模拟Linux开机故障与解决方案_linux故障排错_04

,接着按enter键继续,当出现下图界面时

模拟Linux开机故障与解决方案_linux故障排错_05

,由于我们是为了模拟修复系统,这里我们选择No,继续,直到出现

模拟Linux开机故障与解决方案_linux故障排错_06

此时,我们要阅读上图中的信息,从中我们了解到,文件系统已经挂载到/mnt/sysp_w_picpath目录下了,这时我们要切换到此目录下,

使用 chroot /mnt/sysp_w_picpath这一命令即可。这时我们就可以执行命令了。

由于这时是第一阶段出现了问题,所以我们要安装第一阶段所需的文件,

利用命令:grub-install  /dev/sda 

这时就安装好了,此时我们要重启系统,但这时是输入两次exit进行重启的,此时我们会看到这个界面:

模拟Linux开机故障与解决方案_linux故障排错_07

说明,这个错误我们已经解决了。

(二)

然后我们模拟第二个阶段出错时应该如何去解决。这时我们切换到/boot/grub目录下,会看到一个重要的配置文件grub.conf。这时我们可以把此文件删除或者挪走来模拟另一个出错的情况,这里我们把此文件删除。然后我们重启系统会看到如图所示界面

模拟Linux开机故障与解决方案_linux故障排错_08

这时,系统已经起不来了,然后我们解决这一问题

此时我们要输入四条指令:

模拟Linux开机故障与解决方案_linux故障排错_09

然后我们会看到

模拟Linux开机故障与解决方案_linux故障排错_10

这样一条错误提示信息,此时我们再重启系统,出现下图界面;

模拟Linux开机故障与解决方案_linux故障排错_11

接下来我们让然输入四条指令后重启系统

模拟Linux开机故障与解决方案_linux故障排错_12

重启后我们可以正常登陆系统了,但是我们的问题还没有解决,因为我们把grub.conf文件删除了,所以我们要自己手动编辑此文件。

模拟Linux开机故障与解决方案_linux故障排错_13

Timeout后的参数可以根据自己的喜好自己定义,它指的是当启动系统时,假如我们不做任何操作,系统会等待3秒后进入系统,title后的也可以自己的喜好随意写。然后把上述文件保存后,重启系统,到此,这个问题我们也解决了。

(三)

假如我们把boot目录下的grub目录删掉了,那会出现什么结果呢

模拟Linux开机故障与解决方案_linux故障排错_14

这时我们按F2进入BIOS,设置为以光盘启动

模拟Linux开机故障与解决方案_linux故障排错_15

保存重启后,依然出现

模拟Linux开机故障与解决方案_linux故障排错_16

这时我们按第一次的方法做即可。

当我们进入救援模式后要输入下图的命令:

模拟Linux开机故障与解决方案_linux故障排错_17

此时我们查看boot目录可以看到grub目录了,但是当我们查看grub目录里的内容时,里面并没有grub.conf文件

模拟Linux开机故障与解决方案_linux故障排错_18

此时,我们仍要自己手动编写grub.conf配置文件,这时我们重复(二)的步骤就可以了。