Grub rescue中的极端修复情况

问题描述:Ubuntu操作姿势不对boot容易出现问题,导致进入grub rescue模式,有时候进行insmod normal加载normal模块时候出现

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

网上找到的相关办法大致都是一样的,并且在rescue模式下只能使用下面很少的命令:

  1. set 设置环境变量
  2. ls 查看设备或文件系统
  3. insmod 加载模块
  4. root 指定用于启动系统的分区
  5. prefix 设定grub的启动路径

传统方法一般操作如下:

ls查看下设备,一般都有好多分区。这时候要手动找到linux分区,因为我们要加载正确的模块,先找到分区就是。
方法:ls (hd0,X)/
X为显示的号码,如果是msdos8可以直接用8代替。该命令为查看分区下的文件,如果root单独分区了,就找到grub目录,然后ls (hd0,x)/gurb会发现还有个i386-pc目录,normal.mod文件就在该目录下。

本来我们通过使用下面的命令

insmod (hd0,X)/grub/i386-pc/normal.mod

就可以加载normal模块进而使用normal命令来恢复grub,但是有时候比较滑稽的是normal.mod这个文件又找不到,所以这种情况可以借助Ubuntu的启动盘来解决,我这里使用的是U盘启动。

简单办法如下:

  1. U盘启动模式进入Ubuntu,选择 "try Ubuntu" 即可
  2. 安装Boot-repair,先联网,然后在终端里输入下面的命令:
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
boot-repair
  1. 在下图里的界面里直接选择第一个修复即可


    boot-repair.png

参考链接

你可能感兴趣的:(Grub rescue中的极端修复情况)