Grub rescue修复方法

题记

今天想从Windows分区里划一个40G的空间出来,于是乎用PQ来处理了……可惜却把grub弄坏了。


症状

开机显示:GRUB loading
error:unknow filesystem
grub rescue>


原因

已经发现下面几种操作会导致这种问题:
1,想删除ubuntu,于是直接在windows下删除/格式化了ubuntu所在的分区。
2,调整磁盘,利用工具合并/分割/调整/删除分区,使磁盘分区数目发生了变化。
3,重新安装系统,把linux安装到了新分区,原有分区已经格式化,但是没有重新安装grub2。
4,用ubuntu备份工具/衍生版制造工具等,把主分区回复成了8.X的老版本,结果老版本的grub是grub1,于是把grub2破坏掉了。


解决办法

1)  grub rescue>ls  // 回车,列出本机所有磁盘及分区,如:hd0,(hd0,1) ,(hd0,7),(hd0,8),(hd0,9)等,我的机器上显示的是(hd0,msdos8)

然后查看到底是那个盘是grub的启动盘,做如下测试,若出现该目录下的文件列表,则成功;若出现"unknow filesystem"则表示不成功,继续试探!

2)  grub rescue>ls (hd0,0)/          //比如,我的盘在输入  ls (hd0,msdos8)/   后出现了文件列表,成功一半了!

出现文件列表,记住这个盘的盘号,如1或msdos8。然后输入下面的命令

3)  grub rescue>set root=(hd0,msdos8)   //括号里为上一步尝试成功的分区
     grub rescue>set prefix=(hd0,msdos8)/boot/grub  
     grub rescue>insmod normal   //每个命令输入后按回车,">"是提示符!!!

然后应该就退出grub rescue模式了(可是我运行时,依然处于grub rescue模式,但提示符的颜色变了!从灰变成白!)

4)  grub> normal   //这样就进入到grub界面下了

进入Linux系统之后,在命令行输入以下命令即可!

sudo update-grub

然后输入

sudo grub-install /dev/sda   //你的启动盘

这样就解决了。


参考:http://www.2cto.com/os/201111/112327.html 和 http://brosnan2800.iteye.com/blog/1244876

(全文完)

你可能感兴趣的:(软件使用心得)