Win7+Ubuntu双系统,对硬盘重新分区后启动不了,提示 grub rescue>
起因是这样的:
C盘空间太小,想从D盘分配出一块空间以对C盘进行扩充。要实现容量扩充,现有的分区软件需要按照如下的步骤展开:
(1)在D盘前free掉一块空间S
(2)在S上创建新的分区(格式同C盘)
(3)Merge C & S
我先做了前两个步骤,重启电脑的时候出现了前面的问题。
解决方法参考了 「Ubuntu启动问题以及Grub Rescue修复方法」,顺利解决。我把解决方案总结到这里:
先说一下为什么会导致上面的引导错误。道理很简单,原来ubuntu位于第n个分区,现在我在它前面多加了一个分区,导致目前的第n个分区不在是ubuntu,因此找不到ubuntu的引导程序,出错。
解决的办法就是修改引导参数,到新的分区上面去找。
Step 1: grub rescue>set
root=hd0,msdos9
prefix=(hd0,msdos9)/boot/grub
//Note: set命令可以显示原先的参数值,可以由此找到原先ubuntu分区所在的分区号,此处是msdos9
Step 2: grub rescue>ls (hd0,msdos10)/boot/grub
//Note: 根据我的判断,由于我添加了一个分区,此时ubuntu分区后移一号msdos10。为了验证我的判断,可以调用ls命令,此时列出了该路径下的文件,所以判断是对的。
(你也可以像那篇文章里写的,先ls,然后逐个分区尝试)
Step 3: grub rescue> set root=hd0,msdos10
grub rescue> set prefix=(hd0,msdos10)/boot/grub
//Note: 重新设置参数值
Step 4: grub rescue>insmod /boot/grub/normal.mod
grub rescue>normal
//Note: 此时会重现久违的引导菜单
Step 5: 进入Ubuntu系统,终端下执行下面另个命令
sudo update-grub
sudo grub-install /dev/sda
重启,搞定