1.环境

系统版本:CentOS-6.4-i386-bin-DVD1.iso

          CentOS-6.4-i386-LiveDVD.iso

网易开源镜像站http://mirrors.163.com/

PS:我这是在虚拟机下利用CentOS的live光盘测试的,多多少少是不方便的,如果是物理机,这种方法就需要使用到光驱了,再如那些刀片服务器,根本就没有物理光驱,所以使用U盘是比较实用的,建议大家把live盘装到U盘中,使用U盘启动来测试及排除这些故障。

2.步骤


A)模拟stage1失效


先查看下自己系统磁盘名称。

CentOS模拟故障及排除(虚拟机下测试)

在系统磁盘的最开始创建一个和boot loader一样大小的文件(446字节),具体原因查阅MBR,覆盖掉boot loader 。然后重启,已经进不去系统了。

CentOS模拟故障及排除(虚拟机下测试)

把安装时的系统盘CentOS-6.4-i386-bin-DVD1.iso添加到虚拟机的光驱中。开机时按Esc键选择光驱启动。

CentOS模拟故障及排除(虚拟机下测试)

进入后按任意键,然后选择第三项,救援模式进入。

CentOS模拟故障及排除(虚拟机下测试)

语言选择英语。

CentOS模拟故障及排除(虚拟机下测试)

选择本地光驱。

CentOS模拟故障及排除(虚拟机下测试)

不连接网络。

CentOS模拟故障及排除(虚拟机下测试)

选择“继续”。

CentOS模拟故障及排除(虚拟机下测试)

可以看到系统已经挂载到了/mnt/sysp_w_picpath下,点击OK。

CentOS模拟故障及排除(虚拟机下测试)

接着OK。

CentOS模拟故障及排除(虚拟机下测试)

选择第一项,打开一个新的shell,点击OK。

CentOS模拟故障及排除(虚拟机下测试)

下面出现了打开的shell窗口,通过chroot切换root身份下。

CentOS模拟故障及排除(虚拟机下测试)

重建MBR中的boot loader。

CentOS模拟故障及排除(虚拟机下测试)

连续两次退出。

CentOS模拟故障及排除(虚拟机下测试)

重启系统。

CentOS模拟故障及排除(虚拟机下测试)

重启正常,可以看到,正在重新标注策略,需要一段时间。已经OK了。

CentOS模拟故障及排除(虚拟机下测试)


B)模拟stage2失效


直接删除stage2文件。然后重启系统。

CentOS模拟故障及排除(虚拟机下测试)

系统出现错误,由于丢失stage2文件,系统已经打不开了。出现"Error 15"错误。

CentOS模拟故障及排除(虚拟机下测试)

把光盘CentOS-6.4-i386-LiveDVD.iso添加到虚拟机的光驱中。开机时按Esc键选择光驱启动。

CentOS模拟故障及排除(虚拟机下测试)

系统启动后按任意键出现此画面,选择第二项boot启动。

CentOS模拟故障及排除(虚拟机下测试)

系统起开后,打开终端,切换到管理员身份下。

CentOS模拟故障及排除(虚拟机下测试)

把第一分区挂载到/boot下。

CentOS模拟故障及排除(虚拟机下测试)

CentOS模拟故障及排除(虚拟机下测试)

新建一个stage2文件。

CentOS模拟故障及排除(虚拟机下测试)

切换到/boot/grub下。

CentOS模拟故障及排除(虚拟机下测试)

stage2已经存在了,重启就OK了。

CentOS模拟故障及排除(虚拟机下测试)


C)模拟grub.conf丢失、损坏或误删除


先看一下系统的根分区挂载到了哪个磁盘分区下,这点特别重要,即root=/LABEL,我的是32位系统,和64位的不太一样。

如果你记得这个位置,就不用进入live光盘折腾了。

我的32位系统根挂载点是root=/dev/sda2

CentOS模拟故障及排除(虚拟机下测试)

下面这是64位下的根挂载点。root=/dev/mapper/vg_centos-lv-root 这个位置非常重要。

CentOS模拟故障及排除(虚拟机下测试)

模拟grub.conf失效,切换到/boot/grub/下,删除它。然后重启。

CentOS模拟故障及排除(虚拟机下测试)

重启后系统就变成了这样。

CentOS模拟故障及排除(虚拟机下测试)

敲入下面4步命令。(可以利用tab键补全vmlinuz-2.6.32和initramfs-2.6.32)

最重要的就是第二步root=/LABEL

(LABEL:根挂载点的位置;ro:只读;quiet:静默启动。)

如果不知道自己的根挂载点位置,可以利用live盘进入系统,使用df -h查看。

CentOS模拟故障及排除(虚拟机下测试)

系统成功启动后,切换到/boot/grub下是没有grub.conf配置文件的,如果不想每次启动系统都敲上面的4个命令,必须为系统建立一个grub.conf配置文件。

CentOS模拟故障及排除(虚拟机下测试)

将下面内容(2-7行)写入grub.conf文件即可。

CentOS模拟故障及排除(虚拟机下测试)


D)/boot/grub 误删除


模拟/boot/grub失效,删除/boot/grub。重启系统。利用CentOS-6.4-i386-LiveDVD.iso修复系统。

CentOS模拟故障及排除(虚拟机下测试)

开机恩ESC键进入光盘启动。

CentOS模拟故障及排除(虚拟机下测试)

选择第二项,boot启动。

CentOS模拟故障及排除(虚拟机下测试)

打开终端,切换到管理员。

CentOS模拟故障及排除(虚拟机下测试)

将/dev/sda1挂载到/boot下。

CentOS模拟故障及排除(虚拟机下测试)

重新建立grub

CentOS模拟故障及排除(虚拟机下测试)

CentOS模拟故障及排除(虚拟机下测试)

可以看到只有stage1和stage2,而没有grub.conf

CentOS模拟故障及排除(虚拟机下测试)

需要手动添加grub.conf,并写入以下内容。

CentOS模拟故障及排除(虚拟机下测试)


E)root口令丢失


开机选择任意键,出现下面画面,摁“e”键进入。

CentOS模拟故障及排除(虚拟机下测试)

利用上下键选择第二项,“e”键进入。

CentOS模拟故障及排除(虚拟机下测试)

只敲“1”就OK了,敲single也一样,进入单用户模式。enter后按b键。

CentOS模拟故障及排除(虚拟机下测试)

成功进入单用户模式,清除管理员密码。也可以修改重置密码。重启就OK了。

CentOS模拟故障及排除(虚拟机下测试)


F)/etc/fstab误写入


模拟fstab误写入.编辑fstab,将第九行开头加一"/"

CentOS模拟故障及排除(虚拟机下测试)

CentOS模拟故障及排除(虚拟机下测试)

重启系统。可以看到提示的错误。UUID前多加了一个"/",正式我们不小心多加的。

CentOS模拟故障及排除(虚拟机下测试)

提示输入密码后进入维护模式。

CentOS模拟故障及排除(虚拟机下测试)

进入后,修改/etc/fstab文件,将第九行的“/”去掉,保存退出,重启系统即可恢复正常。

CentOS模拟故障及排除(虚拟机下测试)



今天就到这里吧,很累!!!