修复损坏的GRUB引导

前言

很多时候,特别是在linux调整分区或者双硬盘或者双系统进行修改后,开机重启时会出现

error : unknow filesystem
grub rescue>

的字样,系统就是进不去。这表示你的grub2的配置文件坏了……

由于分区调整或分区UUID改变造成grub2不能正常启动,从而进入修复模式了(grub rescue),也称救援模式。

在救援模式下只有很少的命令可以用:set , ls , insmod , root , prefix

(1)set 查看环境变量,这里可以查看启动路径和分区。
(2)ls 查看设备
(3)insmod 加载模块
(4)root 指定用于启动系统的分区,在救援模式下设置grub启动分区
(5)prefix 设定grub启动路径

具体修复步骤

1、查看分区 grub rescue> ls,回车
会出现如下字样:

(hd0) (hd0,msdos9) (hd0,msdos8) (hd0,msdos7) (hd0,msdos6) (hd0,msdos5) (hd0,msdos2) (hd0,msdos1)    
注:上面是我的分区设备,每个人可能不一样,但原理都是一样的。

2、寻找ubuntu所在分区:
(就是寻找你的Linux系统是装在以上哪个分区里)
grub rescue> ls (hd0,msdos1)/
若出现unknown filesystem字样,则尝试下一个……
若出现的是你的ubuntu主文件夹下的文件夹和文件的名字,那就是的要找的分区了。

3、修改启动分区:
(假如你找到的启动分区是hd0,msdos8)

grub rescue>root=(hd0,msdos8)
grub rescue>prefix=/boot/grub //grub路径设置
grub rescue>set root=(hd0,msdos8)
grub rescue>set prefix=(hd0,msdos8)/boot/grub
grub rescue>insmod normal //启动normal启动
grub rescue>normal

之后你就会看到熟悉的启动菜单栏了

4、进入命令行启动ubuntu
进入系统启动选项界面后还是进不去,
因为你还没有真正的修改grub,这个要到ubuntu里修改
进入系统启动项界面后,按C进入命令行模式

grub >set root=hd0,msdos8
grub >set prefix=(hd0,msdos8)/boot/grub
grub >linux /vmlinuz-xxx-xxx root=/dev/sda8 //里边的xxxx可以按Tab键,如果有acpi问题,在最后加一句acpi=off
grub >initrd /initrd.img-xxx-xxx
grub >boot

这样就可以进入了

5、进入ubuntu修复grub
在终端里运行

sudo update-grub
sudo grub-install /dev/sda

6、重启,搞定!!

添加新评论

  经典站点

MSDN,我告诉你

--- updated on 2019-02-04

  关于博主

肥宅快乐~

  近期评论

  •  TIGRE: 求config.plist!同Miix4用户,感谢🙏
  •  李飞: 博主 你好 可否发下完整的详细步骤,小白一个,谢谢!
  •  xuzhimin1993: 那么,能正确显示电量吗
  •  fowse: 赞,完美解决方案。
  •  超平和buster: 强啊,但是无网络就很难受OωO
  •  崔先森: 第二种方法简单粗暴~
  •  heiye37: 下载地址哪里有呢1

青春就是用来追忆的,当你怀揣着它时,它一文不值,只有将它耗尽后,再回过头看,一切才有了意义,爱过我们的人和伤害过我们的人,都是我们青春存在的意义。

既然活着来到这个世界,就没有打算活着回去。所以,在这有限的时间里,我们应该珍惜生命,珍惜机会,更要珍惜那得之不易的时间。因那滴答做响的时间脚步,一旦走过,再不回头。

青春是一个充满魁力,充满诱惑的时代。好动是青春,好奇是青春,好玩是青春。玩世不恭更是青春,我们的一切切都是青春。

要先打败任何事情得先学会打败自己。

我会把每一次改变当做成长,哪怕是痛也值得。