NVRAM重置後將EFI分割區加入BIOS選單

NVRAM重置後將EFI分割區加入BIOS選單

一開始一切都很好,我的 SSD 有 2 個 EFI 分割區,我通常使用 f12 鍵在作業系統之間切換,將 Linux 保留為預設值。但是,在我清除 NVRAM 後,Windows 啟動管理員仍然存在,但 Linux EFI 消失了。如何將其添加回啟動選單?

答案1

我猜 Windows 啟動管理員也消失了,但要么 UEFI 韌體包含自動將其添加回來的程式碼,要么 Windows 首先使用後備 UEFI 啟動載入程式路徑 ( \EFI\boot\bootx64.efi) 啟動,並將正確的NVRAM 啟動變數添加回來作為完全自動化的“自癒”操作。

使用可啟動的 Linux 即時啟動媒體來修復此問題是最簡單的UEFI 本機模式。這將允許您使用該efibootmgr命令。

從即時媒體啟動 Linux 後,您應該先將 Linux 安裝的 EFI 系統分割區(簡稱 ESP)掛載到 Linux 發行版的慣用位置(通常是/boot/efi,但某些發行版可能只使用/boot)。然後,您應該在該目錄中找到 UEFI 引導程式目錄/boot/efi/EFI/<name of your Linux distribution>/以及類似shimx64.efi和/或 的檔案。bootx64.efi很可能還有其他文件。

如果bootloader目錄包含,則在下一步中shimx64.efi使用它;<bootloader file>如果沒有,則使用(grubx64.efi如果存在)。

假設 Linux ESP 位於磁碟上/dev/sdaefibootmgr重新建立韌體選單啟動項目的指令為:

efibootmgr -c -d /dev/sda -l \\EFI\\<name of your distribution>\\<bootloader file> -L "<the name you want to see in the firmware menu>"

由於同一磁碟上有多個 ESP,因此您可能必須指定正確的 ESP 裝置名稱,而不僅僅是指定磁碟(即類似-d /dev/sda5而不是僅指定-d /dev/sda)。

之後,用於efibootmgr -v查看啟動設定。您可能必須使用efibootmgr --bootorder調整開機順序以使 Linux 成為預設值,或存取 BIOS 設定來執行相同的操作(某些 UEFI 韌體可能會拒絕使用所做的開機順序變更efibootmgr --bootorder- 這可能是韌體錯誤)。

如果您想讓 Linux 在 NVRAM 重設時成為“倖存者作業系統”,您可以--force-extra-removable在作業系統成功啟動後使用該選項重新安裝 UEFI GRUB,命令如下:

sudo grub-install --force-extra-removable --uefi-secure-boot /dev/sda

(如果您的系統上停用了安全啟動,並計劃保持停用狀態,則可以根據--uefi-secure-boot需要省略該選項。)

相關內容