解决grub rescue问题

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


重启,搞定


你可能感兴趣的:(解决grub rescue问题)