grub rescue>_,即GRUB启动管理器的救援模式,可以理解为一个残缺的GRUB,通常在GRUB无法找到其相关文件时出现,一般是由分区变更引起的。
用4个字概括就是:引导挂了~
下面两张方法适用于linux的分区还在的情况,如果你是希望删除linux而删掉了linux,请看最后一种方式。
下面两张方法中,部分命令仅针对deb系发行版,其他发行版类似。
法一:使用LiveCD启动并重新安装GRUB
这种方法最为简单,不用输入繁琐的GRUB命令。
首先LiveCD启动,进入Live系统,将硬盘上linux的/分区挂载到Live系统中例如/mnt的地方:
sudo mount /dev/sdaN /mnt #按实际情况替换N,如果你的启动磁盘不是sda,也请替换为你的启动磁盘
如果单独分了/boot,则一并挂载,例如:
sudo mount /dev/sdaM /mnt/boot #按实际情况替换M,如果你的启动磁盘不是sda,也请替换为你的启动磁盘
然后重新安装GRUB:
sudo grub-install --root-directory=/mnt/ /dev/sda
若看到类似如下的输出,则表示成功完成修复:
Installing for i386-pc platform. Installation finished. No error reported.
法二:先将GRUB恢复到正常模式,然后进入Linux重新安装GRUB
既然GRUB找不到他的文件,那么我们就手动加载即可,救援模式其实就是一个支持的命令有限的GRUB命令行,我们可以在其中执行一些命令。
先输入以下命令:
ls
GRUB会列出所有的磁盘和上面的分区,如:
(hd0) (hd0,msdos5) (hd0,msdos1) (hd0,msdos2)
然后就一个分区一个分区的试,看看那个是linux的/分区,如果你当分了/boot,则要找/boot分区
如果/boot没有单独分区,用以下命令:
ls (hd0,msdosN)/boot/grub
如果/boot单独分区,则用下列命令:
ls (hd0,msdosN)/grub
正常情况下,会列出来一大堆文件,很多文件的扩展名是.mod和.lst和.img,还有一个文件是grub.cfg。假设找到(hd0,msdos2)时,显示了文件夹中的文件,则表示我们要找的就是这个分区。
然后我们要让GRUB去加载之前它没有加载的文件
下面是/boot没有单独分区的命令:
grub rescue>set root=(hd0,msdos2) grub rescue>set prefix=(hd0,msdos2)/boot/grub grub rescue>insmod /boot/grub/normal.mod
下面是/boot 单独分区的命令:
grub rescue>set root=(hd0,5) grub rescue>set prefix=(hd0,5)/grub grub rescue>insmod /grub/normal.mod
然后调用如下命令,就可以看到GRUB的菜单了。
grub rescue>normal
然后进入Linux系统,执行:
sudo update-grub #更新引导菜单,非deb系的发行版可能不是这个命令 sudo grub-install /dev/sda #如果你的启动磁盘不是sda,请替换为你的启动磁盘
至此,修复完毕。
法三:使用PE系统直接安装Windows的启动管理器
这种方法适合已经删除了Linux分区,或者正准备删除Linux分区,然后回到Windows系统的人。
首先你需要一个装在U盘上的PE,网上一搜全是,个人比较推荐这个还算比较干净的PE:http://www.wepe.com.cn/
然后启动PE系统,里面一般有个修复Windows引导的工具,运行即可。