解决开机显示 grub rescue

背景:硬盘已经有了win10,U盘安装ubuntu16.04 ,开机出现:

error:file /grub/i386-pc/normal.mod not found.

不知道是不是我启动盘的问题,联想E430,DELL M6700每次安装都会出现这个问题(在安装的时候还提示了什么UFEI的事情,不理会,直接安装)。 当然如果把ubuntu系统、引导(/boot)删除也会出这个问题,这样就要先安装系统。

查看了几个帖子,发现很乱,我把我自己的理解写一下,有问题可以一块讨论

原因:

win10和ubuntu双系统,win10大幅度升级时破坏了grub
因为grub2其实分为两部分,第一部分在MBR中,第二部分在Ubuntu的boot/grub中,win10升级导致在MBR中的grub找不到在boot/grub中的grub2.

https://www.jianshu.com/p/5183c513ba0e

我没有做升级,只是重装了系统,不知道是不是WIN10系统的影响才会出现这个问题,或者是我ubuntn系统的问题,不过出现这个问题的原因时计算机不知道改从那个地方去启动系统,或者说不知道把哪里的东西加载到内存中运行。

解决: 

1.进入PE,启动项修复,请自行百度

2.由于我这里没有win10PE,所以就在grub rescue里面修复了。具体过程为:

先输入ls回车,查看显示的内容。如:
(hd0) (hd0,msdos5) (hd0,msdos3) (hd0,msdos2)....
然后找出哪个盘安装了系统,
ls (hd0,msdos1)/grub
ls (hd0,msdos2)/grub


 

注意这里网上有各种版本,比如 ls (hd0,msdos2)/boot/grub,其实可以ls (hd0,msdosX),先看一下是不是EX2文件系统,然后再ls (hd0,msdos1)/grub 或者其他目录,目的是能够找到gurb.cfg,如图所示:

 

解决开机显示 grub rescue_第1张图片 

 把root 的地址设置成这个文件夹就行了


set root=(hd0,msdos3)/grub
set prefix=(hd0,msdos3)/grub
insmod normal
normal



注意,如过insmod normal 出问题,会有报错,正常则没有任何输出。

然后就可以显示grub2的图形界面
但这并没有结束,因为win10已经将grub破坏了,下一次重启我们仍会遇到grub rescue问题,所以我们必须重启进入ubuntu修复grub2.
修复grub
进入Linux系统后,在命令行里

 

  sudo update-grub
  sudo grub-install /dev/sda     
  #=>sda是你的启动磁盘,不是某一个扇区

参考:https://www.jianshu.com/p/5183c513ba0e
 

 


 

 

 

 

 

 

 

你可能感兴趣的:(笔记)