起因:
我是在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的啟動菜單。
