Ubuntu 开机出现 grub rescue> 终端模式修复方法

本人装的windows和Ubuntu双系统,手贱在windows下动了原来挂载在Ubuntu系统上一个盘,本以为不是原来原来划给Ubuntu的硬盘

空间,而且在windows资源管理器里也是可见和可用的,最后格式化了一下,就进不去Ubuntu了,好奇怪

不过网上Ubuntu论坛上有介绍解决方法

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 安装在这个分区。
这里我是(hd0,msdos7)
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/可以找到,但有的不可以,我们通过ls (hd0,msdosX)/boot/grub命令可以看到一个i386-pc的文件夹,我当时是估计了一下,然后

ls (hd0,msdosX)/boot/grub/i386-pc可以看到一堆文件,好多.mod的文件,于是我猜测normal.mod就在这里面,所以上面

grub rescue>set root=(hd0,msdos3)

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

    grub rescue>insmod /boot/grub/normal.mod步骤可以改写成:

grub rescue>set root=(hd0,msdos3)

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

    grub rescue>insmod /boot/grub/i386-pc/normal.mod

就可以了。

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

    grub rescue>normal

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

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

    sudo update-grub

    sudo grub-install /dev/sda

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

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

原文地址:https://www.cnblogs.com/Erdos001/p/4502214.html