起因:

我是在windows下格式化了ubuntu的盘,然后重新安装ubuntu就出现了这种问题。卸载ubuntu的正确姿势,要去查一下,千万不要直接格式化。

解决方法:

1.  先使用ls命令,找到ubuntu的安装在哪个分区:

grub rescue>ls

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

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

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

如果boot单独分区:

grub rescue>ls (hd0,msdosX)/grub

如果boot没有单独分区

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

如果都找不到的话,需要查一下是否因为Linux版本差异,造成grub的路径不对,

例如ls (hd0,X)/boot/grub等等)。

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

4. 调用如下命令:

    grub rescue>set root=(hd0,msdos1)

    grub rescue>set prefix=(hd0,msdos1)/grub(该路径与第2步中找到grub文件的路径一致)

    grub rescue>insmod normal

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

    grub rescue>normal

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

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

    sudo update-grub

这里注意由于我们的固态硬盘是nvme的,这里应该输入:

    sudo grub-install /dev/nvme0n1

   (/dev/nvme0n1是我们安装ubuntu分区的位置)

    如果固态硬盘是SATA的,那么应该输入:

     sudo grub-install /dev/sda

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

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

05-08 15:39