实验环境:

         CentOS-6.5-i386            http://mirror.bit.edu.cn/web/

         VMware-9.6.1

         CentOS-6.5-i386-LiveDVD    http://mirror.bit.edu.cn/web/

开机过程:

开机自检,基于BIOS中的设置找到 MBR主引导记录(优盘光盘除外,硬盘一定会找到MBR)。在主引导记录中找到主引导程序,通过主引导程序找到grub菜单,通过grub的选择或者默认选择来加载内核,加载内核之后运行第一个进程即init进程,init进程读取/etc/inittab配置文件。通过inittab配置表格来确定进入哪一种运行级别,但是不管进入哪一种运行级别,都会执行/etc/rc/d/rc.sysinit脚本,进行初始化。inittab配置文件同时会执行/etc/rc.d/rcn(n:0~6).d脚本,运行相应的级别,并将脚本中带s的程序启动,带k的程序关闭。最后执行开机脚本。启动mingetty进程,提供登录界面。

 grub菜单中包含三个阶段,每一个阶段失效都会造成系统不能启动,下面我们就来模拟一下各个阶段失效时会出现的情况以及解决方案。

一、 改变bootlodaer的引导数据。

 进入/boot/grub目录下,执行指令: 

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

回车之后,重启系统,出现故障,不能进入系统。但由于我们的光盘是一个系统盘,因此会提供一个引导界面,这是需要选择第三项来拯救=系统。

CentOS启动过程故障及解决方案_centos

CentOS启动过程故障及解决方案_启动过程_02

CentOS启动过程故障及解决方案_centos_03

CentOS启动过程故障及解决方案_centos_04

CentOS启动过程故障及解决方案_centos_05

CentOS启动过程故障及解决方案_centos_06

CentOS启动过程故障及解决方案_故障解决_07

CentOS启动过程故障及解决方案_centos_08

CentOS启动过程故障及解决方案_故障解决_09

 

重启后,系统ok

CentOS启动过程故障及解决方案_centos_10

 

                      二、  第一阶段失效后进入救援模式,可以拯救系统,那么第二阶段呢?下面我们就来模拟第二阶段故障以及故障解决方案。进入/boot/grub目录下,我们来点狠的,把stage2文件彻底删除,然后再重启,看看会出现什么结果。

CentOS启动过程故障及解决方案_centos_11

 

  直接error 掉了,情况貌似有点小严重。该怎么解决呢?在windows操作系统下,我们用winPE来重新安装系统,在这里呢,也有一种winPE的概念,我们可以用liveDVD来启动光盘。把镜像换成这个,再次重启系统。重启后进入BIOS界面,更改启动项,将第一启动项改成光盘启动。这时由于我们的光盘是LiveDVD,类似于WinPE一样的一个小的操作系统,所以可以进入系统,看到之前硬盘上数据。进入之后,通过LiveDVD来拯救系统。

CentOS启动过程故障及解决方案_故障解决_12

CentOS启动过程故障及解决方案_故障解决_13

 

   启动后执行命令:

                  mount    dev/sda1         /boot                            将分区挂载到/boot

                 grub-install    --root-directory=/    /dev/sda        grub文件安装到/boot/grub目录下。

 进入/boot/grub目录下查看是否存在stage2 文件,可以看到确确实实存在。

CentOS启动过程故障及解决方案_centos_14

 

 既然存在,那么我们的系统是不是成功救过来了呢?重启测试一下,成功了。

 

               三、 我们再来删除/boot/grub目录下的grub.conf文件,再次重启,看看系统能否重启成功。由于删除了grub文件,系统是肯定不能成功启动的啦。

CentOS启动过程故障及解决方案_启动过程_15

 

  在命令行中输入:

                          root (hd0,0)   

                          kernel   /vmlinuz-2.6.32-431.el6.i686 ro root=/dev/sda2 rhgb quiet

                          initrd   /initramfs-2.6.32-431.el6.i686.img 

                          boot 

  重启后进入系统,再来重建grub.conf文件,让系统再次启动的时候能够正确引导。进入/boot/grub目录下,执行命令:vim  grub.conf 编辑内容如下:

CentOS启动过程故障及解决方案_启动过程_16

 

                     编辑完成后,保存,再次重启系统测试,看看这次系统能不能拯救过来。

 

        四、找不到grub目录。这个目录丢失,相当于我们的引导程序没有了,情况是相当严重的。那该怎么办呢?此时的你,不要惊慌不要失措,小编跟你一起来解救我们的系统与水深火热之中。

CentOS启动过程故障及解决方案_centos_17

 

重启之后又停留在了这个界面,跟删除grub.conf文件的结果一样。可能有的朋友删除grub目录重启后出现的是error界面,不过没关系,error界面的时候我们可以通过LiveDVD来启动系统,重启后不用执行下面的命令了,直接这一步后面的命令就行了。但是呢,我这里出现的是grub界面,我们就只好再次执行下面的命令吧:

                                 root (hd0,0)    

                                 kernel   /vmlinuz-2.6.32-431.el6.i686 ro root=/dev/sda2 rhgb quiet

                                 initrd   /initramfs-2.6.32-431.el6.i686.img 

                                 boot 

CentOS启动过程故障及解决方案_启动过程_18

 

系统重启后,执行命令:

               mount  /dev/sda1    /boot                             将引导分区挂载到/boot 

              grub-insatll  --root-directory=//dev/sda       将grub的一些程序文件安装到/boot/grub

查看结果。你会发现grub目录神奇的出现了,但是进入目录,发现却又少grub.conf文件,这个文件可是不会自动建立的,需要我们手动编写,我们只好再来编写一次喽。编写完成后再次重启,系统又死而复生了!很有趣吧!

 

               五、第五类故障就是我们的管理员口令丢失了,大家想知道怎么破解管理员口令的话就看我的另一篇博客吧,那里面会有详尽的破解过程。

                       链接在这里:http://inferr.blog.51cto.com/blog/7574698/1344550