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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模拟Linux开机故障与解决方案相关的知识,希望对你有一定的参考价值。

Linux启动流程图

技术分享

(一)
模拟第一个阶段失效与修复
我们利用一条命令来把MBR的前446字节覆盖的方法来模拟第一阶段
dd if=/dev/zero of=/dev/sda bs=446 count=1
然后我们重启linux系统,此时只会这个界面,而进不去系统了

技术分享

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

然后,我们要进入救援模式进行修复系统。在boot:后面输入一条命令就进入了救援模式:
Linux rescue 此时会进入如图的界面
技术分享

然后,我们要进入救援模式进行修复系统。在boot:后面输入一条命令就进入了救援模式:
Linux rescue 此时会进入如图的界面,按enter出现画面选择no;

出现下面画面

技术分享

此时,我们要阅读上图中的信息,从中我们了解到,文件系统已经挂载到/mnt/sysimage目录下了,这时我们要切换到此目录下,使用 chroot /mnt/sysimage这一命令即可。这时我们就可以执行命令了。
由于这时是第一阶段出现了问题,所以我们要安装第一阶段所需的文件,
利用命令:grub-install /dev/sda
这时就安装好了,此时我们要重启系统,但这时是输入两次exit进行重启的,此时我们会看到这个界面技术分享

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


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

这时,系统已经起不来了,然后我们解决这一问题
此时我们要输入四条指令:

技术分享

接下来
技术分享

这样一条错误提示信息,此时我们再重启系统,出现下图界面;
技术分享
接下来我们仍然输入四条指令后重启系统
技术分享

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

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


三)
假如我们把boot目录下的grub目录删掉了,那会出现什么结果呢
技术分享
这时我们按F2进入Bios,设置为以光盘启动
技术分享

保存重启后,出现

技术分享

这时我们按第一次的方法做即可。
当我们进入救援模式后要输入下图的命令:

技术分享

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

技术分享

使用第二种方法:判断root (hd0,0)后面的数字可以试,到第二行的时候输入k再用tab键补全,如果可以补全就对了,最后进去了,重新配置grub.conf再重启就好了。


以上是关于模拟Linux开机故障与解决方案的主要内容,如果未能解决你的问题,请参考以下文章

Linux常见故障-------MBR引导扇区恢复

CentOS 6 系统无法开机故障修复

CentOS 6 系统无法开机故障修复

图解CentOS系统启动流程

Linux系统从开机到正常提供服务的详细开机启动流程

Linux系统从开机到正常提供服务的详细开机启动流程