ubuntu引导出错:grub rescue解决办法

2014-05-05 19:59:28

修改了win8.1的启动项导致Ubuntu引导出错:

GRUB loading error:unknow filesystem grub rescue>

【造成该问题的原因】

1.直接在window下格式化ubuntu的分区

2.调整磁盘 利用工具合并 修改 删除分区 是磁盘分区数目发生变化

3.重装系统选择不同分区  格式化之前分区

4.恢复到老版本系统

【解决办法】

  1. 先使用ls命令,找到Ubuntu的安装在哪个分区:

在 grub rescue>下输入以下命令:先输入ls,会罗列所有的磁盘分区信息,eg:

(hd0,1),(hd0,5),(hd0,3),(hd0,2)或(hd0,msdos1)  like this~

2. 然后依次调用如下命令: (X表示分区编号)

如果/boot没有单独分区,用以下命令:ls (hd0,X)/boot/grub

如果/boot单独分区,则用下列命令:ls (hd0,X)/grub

如果你记得Ubuntu在哪个区选择即可,忘了的话可以进老毛桃PE看一下,也可以一个一个的试,反正也不多,如果不是会提示没找到,找到的话会显示文件夹中的内容,一般扩展名是.mod和.lst和.img。假设找到(hd0,5)时,显示了文件夹中的文件,则表示Linux安装在这个分区。

 
3. 如果找到了正确的grub目录,则设法临时性将grub的两部分关联起来,方法如下:以下是/boot没有单独分区的命令:

grub rescue>set root=(hd0,5)

grub rescue>set prefix=(hd0,5)/boot/grub

grub rescue>insmod /boot/grub/normal.mod

以下是/boot 单独分区的命令:

(如果/boot单独分区去掉代码中的/boot即可):

grub rescue>set root=(hd0,5)

grub rescue>set prefix=(hd0,5)/grub

grub rescue>insmod /grub/normal.mod(这如果出错可以尝试insmod normal即可

然后调用如下命令,就可以显示出丢失的grub菜单了。

grub rescue>normal

这时已经成功进入了Ubuntu的grub引导,不过不要高兴,如果这时重启,问题依旧存在,我们需要进入Ubuntu中,对grub进行修复。进入ubuntu之后,在终端执行:

sudo update-grub

sudo grub-install /dev/sda

(sda是你的硬盘号,千万不要指定分区号码,例如sda1,sda5等都不对),现在重启会发现Ubuntu的引导已经回来,大功告成了。