虽然常年使用Gentoo/Linux,但考虑到可能会用得上Windows,机器上还是一直保留着一个Windows系统。最近发现XP慢的不行,启动时成蜗牛了,忍无可忍,又听说Win7很快,于是“啪啪”两下,把XP换成了Win7,虽然讨厌的Windows的霸道,还真的不得不称赞下Win7的安装速度,启动速度以及效果的绚丽。但是问题来了,进不去Gentoo了,我知道需要修复下Grub,但是如何修复的方法以前看过一些,却还从没实验过。于是考虑如下:
1)用Linux CD启动grub,但是我的Ubuntu CD启动后怎么也没找着启动grub的方法,进去后也发现无法mount我的Gentoo根分区(CD的内核过老,不支持我使用的ext4分区格式)。无语了。
2)仔细思考了下,只要进入我的Gentoo系统,就有办法恢复Grub,但我得先进去我的Gentoo系统啊。据说grub for dos常用于硬盘安装Linux,应该也可以用来启动已经安装好的Linux,于是下了个 grub4dos-0.4.4,参考了点资料,如下过程:
(2.1)解压grub4dos,拷贝出其中的bootmgr,grldr.mbr,grub.exe到C:/下。
(2.2)在C:/下新建两个文件boot.ini, menu.lst(如果已经存在了话,在文件末尾补充内容),内容如下:
boot.ini
[boot loader] timeout=30 [operating systems] c:/grldr.mbr="grub"
menu.lst
GRUB
(2.3)重启系统后,哈哈,有了GRUB的选项了,这下好了,进入grub界面,执行下面命令
grub> kenerl (hd0, 5)/boot/kernel-2.6.34-gentoo-r1 grub> initrd (hd0, 5)/boot/vmlinuz-2.6.34-gentoo-r1 grub> boot
哈哈,进入了久违的Gentoo系统。如果不理解上面的命令,这里解释一下:
kernel命令指定内核, (hd0, 5)是第1块硬盘sda6分区,也就是我的Gentoo根目录所在分区,注意你可以按tab键补齐,也可用ls命令查看各个分区下的内容,如果不知Linux系统所在分区,通过上面的方法也比较容易找。
initrd命令初始化一些硬件,如磁盘驱动器等。
boot就是启动系统。
(2.4)进入了Gentoo系统后,切换到root用户,运行下面命令:
grub-install --no-floppy /dev/sda
这样就把grub写入到了硬盘的MBR中,然后你可能要配置一下,例如在grub.conf配置文件中(不同的Linux,配置文件名字可能不一样)增加如下内容:
title Win7 rootnoverify (hd0,0) chainloader +1
这样,在启动时就可以选择启动Linux还是Win7了,至此搞定。