如何在 USB 隨身碟上為完全可移植的 Linux 製作 grub,而不將條目寫入系統 EFI?

如何在 USB 隨身碟上為完全可移植的 Linux 製作 grub,而不將條目寫入系統 EFI?

我已將 Debian Bullseye 安裝在 USB 隨身碟上。當我從中插入拇指驅動器筆記本啟動時,因為 UEFI 中有一個條目“debian”。從 UEFI 啟動管理器中選擇它後,用sudo efibootmgr -b <boot entry number> -B拇指驅動器將其刪除後不再啟動。它不再可啟動,因為 UEFI 使用當時預設的 Windows Bootmanager 啟動項目。

之後我使用了 Ubuntu Live 系統並發布了

sudo mount /dev/sdXY /mnt
sudo mount /dev/sdXX /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
grub-install --no-nvram --removable /dev/sdX
update-grub  

就像這裡描述的那樣https://askubuntu.com/a/831241並新增選項--no-nvram --removable,請參閱https://www.systutorials.com/docs/linux/man/8-grub-install/

現在從 EFI 啟動管理員中選擇拇指驅動器時,它會啟動,但會顯示一條訊息“啟動選項恢復”,該訊息可以在大約 6 秒內取消。之後系統重新引導,然後載入 grub 並引導系統。不過現在debianUEFI系統又出現了。

使用--no-nvram或不使用,沒有什麼差別。若要從此拇指驅動器啟動,UEFI 中有一個條目。如何防止這種情況發生?當從 Acronis Media 或 USB 拇指驅動器的 Ubuntu Live 媒體啟動時,它會在不修改系統 UEFI 啟動項目表的情況下啟動。所以這應該是可能的。

更新:您可以按任意鍵,然後選擇繼續啟動而不重置系統和始終繼續啟動。然後「啟動選項恢復」視窗不再顯示,而是立即顯示 grub,但作業系統仍然寫入 UEFI 啟動順序。

答案1

如果您的 USB 格式為 fat(或 vfat),您只需要在其上建立 /EFI 目錄並在其中安裝 grub。除非它不是 fat 格式,否則不需要單獨的 EFI 分割區。

BIOS 不需要知道該 EFI 條目,因此您不需要使用 efibootmgr 安裝它。但是,您可能需要告訴 BIOS 手動啟動 USB(透過在每次啟動時從手動啟動選單中選擇它)或將 USB 放入啟動順序。

相關內容