Ubuntu

刪除另一個發行版分區後重新啟動 Grub 菜單

  • June 19, 2016

我剛買了一個macbook air。我用 Ubuntu 雙啟動 mac os。這是我第一次在 mac 上進行多重引導。我用另一個 Ubuntu 進行了三次啟動。在刪除第三個發行版後,我遇到了 grub 的一些問題。

首先,我做瞭如下分區:

$ lsblk
sda
 sda1  200M    /boot/efi
 sda2  47.3GB              # Mac os
 sda3  620MB               # Mac rescue
 sda4  2GB                 # Swap partition
 sda5  50GB                # Ubuntu 1
 sda6  50GB                # Ubuntu 2
 sda10 100GB               # ext4 file system

我在sda5. 完成後,它直接使用 Ubuntu 啟動,這很棒。後來我安裝了另一個 ubuntu,sda6因為我想使用其他 ditros 進行測試,並且我想檢查我是否可以輕鬆地做到這一點。請注意,Ubuntu 版本與我在另一個分區上安裝的完全相同。安裝第二個 Ubuntu 後,我重新啟動,然後出現 grub 螢幕,要求我在兩個 Ubuntu 之間進行選擇。整潔的。然後,對第二個 ubuntu 沒有用處,我只是sda6使用gdisk

$ gdisk /dev/sda
> d  # delete partition
> 6  # delete partition 6
> w  # write changes
> Y  # confirmation of writing changes.
> q  # quit gdisk

$ lsblk
sda
 sda1  200M    /boot/efi
 sda2  47.3GB              # Mac os
 sda3  620MB               # Mac rescue
 sda4  2GB                 # Swap partition
 sda5  50GB                # Ubuntu 1
 sda10 100GB               # ext4 file system

現在重新啟動時,我在黑屏上看到 grub 命令行。我必須指定我的 ubuntu 所在的磁碟。我按照此執行緒中的一些指示在 Ubuntu 上啟動: https ://askubuntu.com/questions/159846/tried-to-boot-ubuntu-but-the-grub-rescue-shows-up-instead 並嘗試執行以下操作:

grub> ls (hd2,gpt5)  # That's my Ubuntu partition
grub> root=(hd2,gpt5)
grub> configfile /boot/grub/grub.cfg

現在我在 Ubuntu 中成功啟動。登錄後,我按照更新 grub 的說明進行操作:

$ sudo update-grub

唉,重新啟動時,grub螢幕再次彈出。所以更新 grub 並沒有解決問題。我還嘗試使用 grub 2 以防萬一:

$ sudo update-grub2

它不會改變任何東西。

我還嘗試在 sda6 上重新安裝 Ubuntu 的第二個版本。同樣的方案,當我重新啟動時,我被要求在 grub 菜單中選擇兩個 Ubuntu 版本,所以它解決了這個問題。但是一旦我刪除了第二個 Ubuntu 分區,第一個分區就不會直接啟動,除非我在 grub 命令行螢幕中指定它。

我不知道這是否有用,但這是我的 fstab:

$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda2 during installation
UUID=85ab4560-729a-4f7d-91d9-69af89ea1219 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda1 during installation
UUID=DAC6-DEC2  /boot/efi       vfat    defaults        0       1
# swap was on /dev/sda4 during installation
UUID=9c76739a-5996-43d8-a14e-fe690c06870f none            swap    sw              0       0

我能做些什麼來解決這個問題?是EFI的問題嗎?為什麼刪除第二個 Ubuntu 分區會使 grub 無法辨識第一個分區?

請注意,我想找到一個乾淨的解決方案,所以我想避免重新安裝 Ubuntu 來解決它。

我通過從該執行緒中獲取提示解決了我的問題:https ://superuser.com/questions/376470/how-to-reinstall-grub2-efi

我不需要使用實時安裝,我只是通過 grub 視窗啟動了我的 ubuntu 會話。然後我重新安裝了 grub:

$ apt-get install –reinstall grub-efi-amd64

這也自動進行了更新grub。它工作並更新了 /boot/efi/EFI/ubuntu/grub.cfg 中的 grub.cfg 文件,更新了正確的分區以從以下位置啟動 ubuntu:

$ cat /boot/efi/EFI/ubuntu/grub.cfg 
search.fs_uuid 17441147-6b9d-45fe-bccd-bed2451f43f8 root hd0,gpt5 
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

以前,跑步

$更新-grub

既不會更新 uuid 也不會更新分區,舊分區是最新的 ubuntu,名為 hd0,gpt6。所以似乎重新安裝 grub 是必要的。

您需要grub.cfg使用以下命令重新創建:

grub2-mkconfig -o /boot/grub2/grub.cfg

或者

grub-mkconfig -o /boot/grub/grub.cfg

引用自:https://unix.stackexchange.com/questions/289272