解析Linux系统下GRUB故障修复


在使用Linux的过程中,大多初学者都遇到过系统启动到“grub>”提示符后就停止不前的问题,功夫不深的爱好者可能会束手无策,转而选择重装系统,其实这只是系统出现了一点小问题,既系统的GRUB配置文件出现了故障,此时可以采用以下两种方案来解决问题:

1)存在GRUB配置文件备份

如果存在GRUB配置文件备份,则可以比较简单的进行恢复,可以按如下方法进行:

使用光盘引导机器,进入到“linux rescue”模式,即系统维护模式;在提示符”sh#”下执行cp命令,将备份文件拷贝到/boot/grub.conf即可

Sh#cp /backup/grub.conf.bak /mnt/sysimage/boot/grub/grub.conf

假设备份文件为/backup/grub.conf.bak,因为大多数Linux光盘修复模式中会将硬盘系统的”/”分区chroot到“/mnt/sysimage”处,所以拷贝的目标为“/mnt/sysimage/boot/grub/grub.conf”,而非“/boot/grub/grub.conf”。

完成后重新启动即可。内核文件、镜像文件、/boot目录等文件损坏或丢失,也可以使用此种方法修复。

2)如果没有GRUB配置文件备份

如果没有备份文件时可以使用grub的交换功能,可以在”grub>”命令行下进行以下操作以手动启动系统:

查找/boot/grub/grub.conf分区所在的目录:

grub> find /boot/grub/grub.conf

(hd0,0)

需要注意的是,上述命令将得到的是grub.conf配置文件所在的系统的分区,(hd0,0)即表示它在分区hda1

查看grub.conf文件错误使用如下的命令:

grub> cat (hd0,0)/boot/grub/grub.conf

需要注意的是,可以查看配置文件到底什么地方出现了错误,以便进入后修改。

指定/boot分区使用命令:root (hd0,0)

从此步骤开始,即为本文前面提到的GRUB配置文件的主要引导步骤,只是一般都是系统读取GRUB配置文件,出现问题时我们可以使用手动启动。

指定内核加载的命令:kernel /boot/vmlinuz ro root=LABEL=/

指定镜像文件所在的位置可用如下命令:initrd /boot/initrd-2.6.24-1.3194.fc7

从/boot分区启动可以使用如下命令:boot (hd0,0)

此时系统即可正常启动,实际上以上步骤就是执行了GRUB引导期间加载grub.conf文件的步骤,当系统正常启动后将GRUB配置文件修改正确后即可

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3