双系统(win8.1+ubuntu14.04)删除win下分区导致grub rescue解决方案

几个grub rescue下的命令的含义:

  1. set 设置环境变量
  2. ls 查看设备
  3. insmod 加载模块
  4. root 指定用于启动系统的分区
  5. prefix 设定grub启动路径
操作流程:
1.  先使用ls命令,找到Ubuntu的安装在哪个分区:

     grub rescue>ls

     会罗列所有的磁盘分区信息,比方说:

     (hd0),(hd0,msdos3),(hd0,msdos2),(hd0,msdos1)

2. 然后依次调用如下命令: msdosX表示各个分区,注意 msdos 与 数字 之间没有空格!

     grub rescue>ls (hd0,msdosX)/boot/grub

     如果都找不到的话,需要查一下是否因为Linux版本差异,造成grub的路径不对,
     例如直接ls(hd0,X)/grub等等。

3. 假设找到(hd0,msdos3)时,显示了文件夹中的文件,则表示 Linux 安装在这个分区。

4. 调用如下命令:

    grub rescue>set root=(hd0,msdos3)

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

    grub rescue>insmod /boot/grub/normal.mod       //这里 normal.mod也有可能在/boot/grub/i386-pc中,自己ls一下看

5. 然后调用如下命令,就可以显示出丢失的grub菜单了。

    grub rescue>normal

6. 不过不要高兴,如果这时重启,问题依旧存在,我们需要进入Linux中,对grub进行修复。

    进入Linux之后,在命令行执行:

    sudo update-grub

    sudo grub-install /dev/sda

    (sda是你的硬盘号码,千万不要指定分区号码,例如sda1,sda5等都不对)

7. 重启测试是否已经恢复了grub的启动菜单。

注:sudo gedit /boot/grub/grub.cfg 可以修改 grub 的引导菜单。
原文地址:https://www.cnblogs.com/york-hust/p/4065934.html