我把我的那个非虚拟机Ubuntu 升级到10.04,在选择 grub 安装选项时,选择了 /boot 分区,于是启动的时候华丽的出现了 grub rescue …
解决方法在网上有一些,大家可以自己找下,这里介绍的是我的方法:
首先,我常备着一个 USB 的 Ubuntu 系统。没有这个的,有 LiveCD 的看最下面那段。
先把 USB 插入,在启动的时候选择 USB 设备,这样,系统会使用 USB 的 MBR 上的信息,然后调用 USB 上的 Grub,来引导 USB 上的 Ubuntu 系统启动。
进入系统后,执行:sudo grub-mkconfig -o /boot/grub/grub.cfg。这会扫描当前的系统,把所有可以找到的能够引导的系统全部记录在 USB 的 grub 上面。
重启,再次使用 USB 上的 Grub 引导。这次,PC 机上面的 Ubuntu 系统也出现在 Grub 的选单里,直接引导之,进入 PC 系统。然后,我们在 PC 机的系统上运行 sudo grub-install /dev/sda (根据具体的情况选择),这个命令会把 Grub 需要的引导信息写入 sda 的 MBR 中。
拔掉 USB ,再次重启,选择从装有 Ubuntu 的硬盘引导,顺利解决问题。
另外,如果 USB 上的 Grub 版本和 PC 上的 Grub 版本一致的话,可以把 PC 机上的 root 分区和 /boot 分区给装载到一个目录上,比如说 /mnt ,然后直接在 USB 的系统上执行 sudo grub-install --root-directory=/mnt/ /dev/sda。这在使用 livecd 进行引导的情况下非常有用。