在使用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配置文件修改正确后即可。