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失效
先查看下自己系统磁盘名称。
。
在系统磁盘的最开始创建一个和boot loader一样大小的文件(446字节),具体原因查阅MBR,覆盖掉boot loader 。然后重启,已经进不去系统了。
把安装时的系统盘CentOS-6.4-i386-bin-DVD1.iso添加到虚拟机的光驱中。开机时按Esc键选择光驱启动。
进入后按任意键,然后选择第三项,救援模式进入。
语言选择英语。
选择本地光驱。
不连接网络。
选择“继续”。
可以看到系统已经挂载到了/mnt/sysimage下,点击OK。
接着OK。
选择第一项,打开一个新的shell,点击OK。
下面出现了打开的shell窗口,通过chroot切换root身份下。
重建MBR中的boot loader。
连续两次退出。
重启系统。
重启正常,可以看到,正在重新标注策略,需要一段时间。已经OK了。
B)模拟stage2失效
直接删除stage2文件。然后重启系统。
系统出现错误,由于丢失stage2文件,系统已经打不开了。出现"Error 15"错误。
把光盘CentOS-6.4-i386-LiveDVD.iso添加到虚拟机的光驱中。开机时按Esc键选择光驱启动。
系统启动后按任意键出现此画面,选择第二项boot启动。
系统起开后,打开终端,切换到管理员身份下。
把第一分区挂载到/boot下。
新建一个stage2文件。
切换到/boot/grub下。
stage2已经存在了,重启就OK了。
C)模拟grub.conf丢失、损坏或误删除
先看一下系统的根分区挂载到了哪个磁盘分区下,这点特别重要,即root=/LABEL,我的是32位系统,和64位的不太一样。
如果你记得这个位置,就不用进入live光盘折腾了。
我的32位系统根挂载点是root=/dev/sda2
下面这是64位下的根挂载点。root=/dev/mapper/vg_centos-lv-root 这个位置非常重要。
模拟grub.conf失效,切换到/boot/grub/下,删除它。然后重启。
重启后系统就变成了这样。
敲入下面4步命令。(可以利用tab键补全vmlinuz-2.6.32和initramfs-2.6.32)
最重要的就是第二步root=/LABEL
(LABEL:根挂载点的位置;ro:只读;quiet:静默启动。)
如果不知道自己的根挂载点位置,可以利用live盘进入系统,使用df -h查看。
系统成功启动后,切换到/boot/grub下是没有grub.conf配置文件的,如果不想每次启动系统都敲上面的4个命令,必须为系统建立一个grub.conf配置文件。
将下面内容(2-7行)写入grub.conf文件即可。
D)/boot/grub 误删除
模拟/boot/grub失效,删除/boot/grub。重启系统。利用CentOS-6.4-i386-LiveDVD.iso修复系统。
开机恩ESC键进入光盘启动。
选择第二项,boot启动。
打开终端,切换到管理员。
将/dev/sda1挂载到/boot下。
重新建立grub
可以看到只有stage1和stage2,而没有grub.conf
需要手动添加grub.conf,并写入以下内容。
E)root口令丢失
开机选择任意键,出现下面画面,摁“e”键进入。
利用上下键选择第二项,“e”键进入。
只敲“1”就OK了,敲single也一样,进入单用户模式。enter后按b键。
成功进入单用户模式,清除管理员密码。也可以修改重置密码。重启就OK了。
F)/etc/fstab误写入
模拟fstab误写入.编辑fstab,将第九行开头加一"/"
重启系统。可以看到提示的错误。UUID前多加了一个"/",正式我们不小心多加的。
提示输入密码后进入维护模式。
进入后,修改/etc/fstab文件,将第九行的“/”去掉,保存退出,重启系统即可恢复正常。
今天就到这里吧,很累!!!