首页 > 代码库 > Ubuntu与Win7双系统下,改变分区导致error:no such partition grub rescue>
Ubuntu与Win7双系统下,改变分区导致error:no such partition grub rescue>
我电脑装的是windows和ubuntu双系统。在windows下改变分区,包括新建分区、删除分区、合并分区等操作,会造成Ubuntu的grub找不到分区,以致进入grub rescue模式。这时可以通过如下方式恢复。摘抄http://www.cnblogs.com/ZhangZhifeng1988/archive/2011/12/19/2294018.html如下:
上网找了很多方法问题终于解决了。网上的内容大概有那么三种,一种是用LiveCD,只有挂了的这一台电脑,在公司里也懒得再下系统刻CD或U盘了。第二种方法是用SurerGrubDisk这个软件。在公司下了个,刻在U盘里,回来试了一下,不知道是没有刻好还是什么原因,屏幕闪了一会儿后,就卡在卡在Booting From USB device 那儿不动了。接下来是第三种方法,也就是解决问题的方法,不需要其它盘和设备,直接就能解决问题。下面是步骤:
首先是要找到自己的系统启动分区, (如果记得话就不用查了)通过输入ls命令可以列出所有的分区,如下所示:
Grub Rescue> ls
hd0 (hd0,msdos1) (hd0,msdos5) ...(hd0,msdos10)
接下来就是找到系统启动分区, 首先输入ls (hd0,1)系统会提示Unkonw Filesystem ,接着输入ls (hd0,5),连续输入下去,直到系统不再提示Unknow Filesystem
接下来的工作就是对启动的分区和路径进行设定,比如刚才找到的分区为(hd0,8) ,确定输入ls (hd0,8) 后,列表中是否有/grub这个文件夹,没有的话看是否有/boot 这个文件夹,一般grub在这个文件夹下,我的就是在这个文件夹下找到的。下面是输入的命令(//为注释的内容,不需要输入):
Grub Rescue> set root=(hd0,8) //刚找到的分区
Grub Rescue> set prefix=(hd0,8)/boot/grub //刚才找到的grub的目录
接下来就是加载普通模式模块,命令如下:
Grub Rescue> insmod /boot/grub/normal.mod //与刚才grub目录对应,normal.mod 文件在grub文件夹下面
加载完后,进入normal模式,命令如下:
Grub Rescue> normal
这时,系统就进入我们平时用的系统(模式)中了。然后我们要做的工作就时重新设定系统启动的分区和路径,因为我们的系统启动不了就是找不到路径引起的。这个过程有两个步骤,一个是对grub 进行更新,grub这时能够发现分区的改变,另一个是对启动分区重新设置。步骤如下:
打开终端,输入sudo update-grub 回车,命令运行完后,输入第二个命令:sudo grub-install /dev/sda //sda是启动磁盘
完成这些步骤以后,系统就完全恢复了。
下面另附另一笔记如下http://blog.sina.com.cn/s/blog_6c9d65a10100n76w.html