Ubuntu 开机出现 grub rescue 的模式下修复

我们两清 提交于 2021-02-08 05:25:11

由于在Windows下面对分区修改,导致grub所在分区由sda3变成了sda2了,这样一来找不到grub了,Ubuntu开机就出现了
 
grub rescue >
 
在此情况下,可以如下解决,并不用重新安装系统
 
第一步,找出你的Linux盘在那个分区以及grub目录在什么位置。
 
如果你还记得最好,忘了也无所谓,使用下面命令逐个试探即可:
 
grub rescue>ls
 
回车后,ls命令会列出所有磁盘分区信息,如:
 
(hd0,4),(hd0,7),(hd0,8),(hd0,9)
 
循环使用如下命令,直至显示该分区所包含文件内容而不是unknown filesystem以及其他一些不正常信息
 
grub rescue>ls (hd0,0)/boot/grub
 
(网上有写ls (hd0,0)/grub的,可能根据不同linux发行版本不同吧,Ubuntu 10.04是grub是放在/boot下面的。或者可以ls其他文件也一样)
 
假设我们试到(hd0,8)时,成功显示了文件内容,则表示。
 
第二步:
 
grub rescue>set  root=(hd0,8)
 
//括号里分区为上一步尝试成功的分区,即linux grub 所在分区
 
grub rescue>set  prefix=(hd0,8)/boot/grub
 
第三步:
 
grub rescue>insmod  normal.mod
 
网上有些insmod /grub/normal.mod的,我的Ubuntu 10.04并不成功
 
至此,应该退出了grub rescue模式,进入了熟悉的grub模式
 
第四步:
 
grub>normal
 
第五步:修复grub
 
进入Linux系统后,在命令行里
 
sudo  update-grub
 
第六步:
 
sudo grub-install /dev/sda              //sda是你的启动磁盘

另附一篇

grub rescue模式下修复

由于在rescue模式下,只有少量的基本命令可用,必须通过一定的操作才能加载正常模块,然后进入正常模式。

rescue模式下可使用的命令有:set,ls,insmod,root,prefix(设置启动路径)

先假设grub2的核心文件在(hd0,8)分区,再来看看怎样从 rescue模式进入从(hd0,8)启动的正常模式(normal)。

在 rescue模式下search命令不能用,对不清楚grub2文件处于哪个分区的,可以用ls命令查看,比如

ls (hd0,8)/ 查看(hd0,8)分区根目录,看看有没有boot文件夹

ls (hd0,8)/boot/ 查看(hd0,8)分区的/boot目录下文件

ls (hd0,8)/boot/grub/ 查看(hd0,8)分区/boot/grub目录下文件

通过文件查看,可以确定 grub2核心文件处于哪个分区,接下来就可以进行从rescue到normal的转变动作:

先 ls 看看分区,根据分区列表,猜下 / 分区的编号再 ls (hd0,x)/ 看分区目录下文件确定找到 / 分区,不对的话继续找。找到 / 分区的 (hd0,x) 继续

grub rescue>root=(hd0,x)

grub rescue>prefix=/boot/grub

grub rescue>set root=(hd0,x)

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

grub rescue>insmod normal
grubgrub
grub rescue>normal -------->若出现启动菜单,按c进入命令行模式

rescue>linux /boot/vmlinuz-xxx-xxx root=/dev/sda x

rescue>initrd /boot/initrd.img-xxx-xxx

rescue>boot

内核版本号 -xxx-xxx可以按Tab键查看后再手动补全。     
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!