兩個 grub 安裝互相破壞
我在
/dev/sda5
. 最近我連接了一個外部驅動器並在其上安裝了 Ubuntu 18.04 LTS (/dev/sdb2
)。之後,我無法再啟動我原來的 Mint 安裝(除了存在外部驅動器)。它剛剛進入黑色 grub 螢幕並提示。我的假設是,grub 是新安裝在外部驅動器上的(這是預期的,因為我希望它可以自行啟動),然後不知何故舊的 grub 安裝被遺忘了。所以我通過使用 live cd 和 chroot 方法修復了 grub。
但是現在如果我重新連接外部驅動器,我無法在 BIOS 引導選擇中選擇從該驅動器引導。
似乎我的兩個 grub 安裝在某種程度上不兼容,但是為什麼以及如何解決呢?
**附加資訊:**兩個磁碟都安裝了 grub2,都使用 EFI 和 gpt。我有一個 EFI 分區 on
sda
並有另一個 onsdb
,因為沒有 EFI 分區 grub 將無法安裝(而且我不想引用 sda 上的 EFI 分區,因為我希望 Ubuntu 能夠在其他地方自行啟動機)。**更新:**我發現
/boot/efi/EFI/ubuntu
存在於我的(修復的)Mint 19 安裝中(未連接外部驅動器)。裡面沒有其他文件夾,/boot/efi
我/boot/efi/EFI
不知道這是否意味著什麼,因為 Mint 19 基於 Ubuntu,並且那裡沒有/boot/efi/EFI/mint
或類似的目錄。外部驅動器上的 EFI 分區完全是空的/boot/efi
,我的 ubuntu 安裝上的文件夾也是如此。我想我將不得不對如何強制使用正確的 EFI 分區進行一些研究。剛才我得到了 grub2 的更新,它在嘗試執行時出錯
grub-install
:Installing for x86_64-efi platform. grub-install: error: cannot find EFI directory.
但是系統確實可以正常啟動。沒有安裝 EFI 分區。
更新 2 好的,似乎在除第一個分區(通常
/dev/sda
)之外的任何其他分區上安裝 EFI 都存在一般問題,請參見此處。我的外部 Ubuntu 安裝上的 fstab 有這一行:# /boot/efi was on /dev/sda1 during installation UUID=8A3D-B724 /boot/efi vfat umask=0077 0 1
這證明,安裝忽略了我選擇的 EFI 分區選項。
如果一個人已經遇到了這種情況,並且不想重新安裝所有東西,並且所有其他磁碟都像sudodus在他的回答中建議的那樣斷開連接,我找到了一種方法:
首先,如果主系統無法自行啟動,請斷開外部驅動器並從 live cd 或 live usb 快閃記憶體驅動器啟動。如果實時會話中不存在,請安裝工具“boot-repair”(高級使用的詳細資訊並在此處安裝,方法是在終端中鍵入
sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt-get update sudo apt-get install -y boot-repair && boot-repair
&& boot-repair
如果安裝成功,最後一部分將立即啟動它。它有一個非常不言自明的 GUI。修復主系統的啟動,然後重新啟動。其次,當主系統再次啟動時,啟動進入,連接外部驅動器。
EFI/ubuntu
將內部驅動器的 EFI 分區(在這種情況下)上的全部內容複製/dev/sda1
到外部驅動器的 EFI 分區兩次。一次到EFI/ubuntu
那裡,一次到EFI/Boot
。然後在EFI/Boot
重命名shimx64.efi
為bootx64.efi
.現在在外部 ubuntu 根分區上編輯文件
etc/fstab
並找到如下一行:# /boot/efi was on /dev/sda1 during installation UUID=8A3D-B724 /boot/efi vfat umask=0077 0 1
用外部 EFI 分區的UUID 替換
8A3D-B724
應該屬於主系統 EFI 分區的 UUID 。可以通過命令找到,blkid
或者如果更喜歡 GUI 應用程序,可以使用 Disks 或 Gparted。完成後,外部驅動器即可啟動。
另見:
當您在 UEFI 模式下安裝 Ubuntu(可能還有 Mint)時,引導載入程序進入第一個驅動器(通常是內部驅動器)
/dev/sda
,進入該驅動器上的 EFI 系統分區。即使您告訴系統將其安裝到另一個驅動器中,也會發生這種情況。如果您希望第二個驅動器是攜帶式的並且可以啟動,則在移除第二個驅動器後,您應該在開始安裝之前斷開(或拔下)第一個驅動器。
以下連結可能會有所幫助,
如何將 Ubuntu 安裝到 USB 密鑰?(不使用啟動盤創建器)
為了修復第一個驅動器(通常是內部驅動器)中的引導系統,您應該在開始修復操作之前斷開第二個驅動器。
編輯:
如果您無法斷開/移除內部驅動器,則有一些解決方法:
- 在 UEFI/BIOS 菜單中禁用內部驅動器
- 標誌法_
一種。在紙上記下內部驅動器中 EFI 分區的標誌
灣。從內部驅動器中的 EFI 分區中刪除標誌(例如
gparted
,從實時驅動器引導時使用 )C。執行安裝
d。將標誌恢復到內部驅動器中的 EFI 分區(
gparted
從實時驅動器啟動)。我已經斷開/刪除了驅動器,並且我知道有人在 UEFI/BIOS 菜單中禁用了它,並且我已經閱讀了有關修改標誌的資訊,但對標誌方法沒有自己的經驗。