Linux环境下如何修复GRUB引导故障
- 引起GRUB故障的原因:
MBR中的GRUB程序遭到破坏
grub.conf文件丢失,引导配置有误
- 故障现象
系统引导停滞,显示“grub>”提示符
- 解决思路:
尝试手动输入引导命令
进入急救模式,从备份文件中恢复grub.conf
修复GRUB引导故障
(1)查看系统中的grub.conf配置文件
(注:建议保存红色圈内的内容,title…initrd…,因为修复时方法二需要手动输入如上内容)
此次实验是为了模拟修复GRUB引导故障,所以我们需要先将grub.conf进行备份,在破坏grub.conf文件,尝试进行修复;
(2)备份grub.conf文件(建议备份到第2块磁盘中)
mkdir /sdb1
mount /dev/sdb1 /sdb1
cp /boot/grub/grub.conf /sdb1/grub.conf.bak
(3)模拟破环grub.conf文件
rm -rf /boot/grub/grub.conf
(4)进行修复的方式主要有两种:
进入急救模式,从备份中恢复grub.conf
尝试手动输入引导命令
方法一:进入急救模式,从备份中恢复grub.conf
RHEL6.5光盘引导,进入急救模式(第3项)
从备份文件中恢复grub.conf文件
fdisk -l (可看到sda、sdb设备)
mkdir /sdb1(在急救模式下的虚拟磁盘中建立sdb1分区的挂载点目录)
mkdir /sda1(创建sda1分区的挂载点目录)
mount /dev/sdb1 /sdb1
mount /dev/sda1 /sda1
cp /sdb1/grub.conf.bak /sda1/grub/grub.conf
登录系统后,可以发现grub.conf已经存在在/boot/grub目录中,GRUB引导故障已经成功修复;
方法二:尝试手动输入引导命令
grub> root (hd0,0)(指定引导分区/boot,(hd0,0) 对应为 /dev/sda1)
grub> kernel /vmlinuz... ro root=/dev/... rhgb quiet(指定内核文件所在的路径、根分区所在的设备位置)
grub> initrd /initrd-...(指定引导过程中使用的缓存盘镜像文件位置)
grub> boot(启动进入系统)
进入系统后:从备份文件中恢复grub.conf文件
mkdir /backup
cp /backup/grub.conf.bak /boot/grub/grub.conf