电脑之前是Ubuntu10.10系统,后来因为工作需要装了一个Fedora 10系统,导致Grub启动信息里没有了原来Ubuntu10.10系统的引导信息。怎么办呢?
首先,进入Grub命令行,尝试使用Grub命令启动Fedora系统 --> 成功。
因为我对Grub的命令还不太熟悉,所以希望先试试Grub命令,如果能启动Fedora系统,再去启动Ubuntu。
启动Fedora的命令有以下四步(在Grub启动界面中按"c"键,即可进入Grub命令行模式):
root (hd0, 10) 注:用于指定Fedora系统/boot所在的分区。如果不知道是哪个分区,可以用cat (hd0,N)/boot开始去试,如果能访问boot目录,则说明这个“N”分区包含/boot/。
kernel /boot/vmlinuz-2.6.27.5-117.fc10.i686 ro root=/dev/sda11 注:用于指定内核文件的位置,以及根目录所在的分区。注意:/dev/sda11 就等于 (hd0,10)。
initrd /boot/initrd-2.6.27.5-117.fc10.i686.img 注:用于指定initrd所在的位置。initrd是一个过度性的根文件系统映像,可以引导至vmlinuz这一阶段。
boot 注:用于启动这个系统。
第二步,用Grub命令方式启动Ubuntu系统 --> 失败,但找到原因。
已经知道Ubuntu安装在 /dev/sda6, 所以用以下命令去启动 Ubuntu:
root (hd0, 5)
kernel /boot/vmlinuz-2.6.35-25-generic ro root=/dev/sda6
initrd /boot/initrd.img-2.6.35-25-generic
boot
结果在第二步的时候就出现“无法找到文件”的错误。
仔细想想,Ubuntu 10.10 安装时使用的是ext4的文件系统,而Fedora 10安装使用的是ext2的文件系统。会不会是Fedora 10所新安装的Grub版本过低,从而导致无法识别ext4文件系统?
检查发现Grub的版本是0.97,而Ubuntu 10.10的Grub是1.98。而且Grub 0.97确实无法识别ext4文件系统。
第三步,安装新版Grub。
选择使用Ubuntu 10.10的Live CD模式启动电脑,然后从Live CD安装新版本的Grub到/dev/sda硬盘上Ubuntu系统所在的根分区。
sudo mount /dev/sda6 /mnt
sudo grub-install --root-directory=/mnt /dev/sda
完成后重启系统,发现Ubuntu的启动信息恢复了!
第四步,添加Fedora系统的启动信息到Grub。
之前成功安装了新版本的Grub,但是这个Grub指向的是Ubuntu系统所在的根分区。现在还需要将Fedora的启动记录添加到Grub的配置文件中。
当然,这一步就简单了,只需要进入Ubuntu系统,然后编辑Grub的配置文件/boot/grub/grub.cfg,将fedora的启动信息添加到grub.cfg就可以了:
menuentry "Fedora (2.6.27.5-117.fc10.i686) (on /dev/sda11)" {
insmod part_msdos
insmod ext2
set root='(hd0,10)‘
linux /boot/vmlinuz-2.6.27.5-117.fc10.i686 ro root=/dev/sda11
initrd /boot/initrd-2.6.27.5-117.fc10.i686.img
}
再重新启动,大功告成。
阅读(3217) | 评论(0) | 转发(0) |