如何使 EFI 檔案正確引導至 Arch Linux?

如何使 EFI 檔案正確引導至 Arch Linux?

我已在新的 SSD 上安裝了 Arch Linux,但在使用 UEFI 啟動時遇到問題。

我成功啟動到 USB 上的 ISO,我相信我已經在 SSD 上成功安裝了 Arch Linux,因為我可以使用 arch-chroot 進入該環境。

我曾經efibootmgr修改 UEFI 啟動順序,以便最高優先權是適當分割區上的 EFI 檔案。我知道這是有效的,因為如果我更改該 EFI 文件,行為就會改變。

運行 efibootmgr 將 UEFI 指向該分割區後,我看到該分割區是空的。應該efibootmgr為我填充 .efi 檔案嗎?如果沒有,我該如何製作或取得 EFI 檔案?

我嘗試從 Arch Linux ISO USB 複製 EFI 檔案。第一次啟動進入 EFI SHELL,但它沒有用,因為終端不滾動並且字體很大,因此文字很快就會從螢幕底部列印出來。第二個 EFI 檔案搜尋 ISO USB 隨身碟/dev/disk/by-label/並嘗試從中啟動。如果我可以引導它搜尋 SSD 的主分割區,這可能會很有用。

任何建議表示讚賞。

答案1

讓它工作,回答我自己來幫助任何遇到這個問題的人。

efibootmgr 應該為我填充 .efi 檔案嗎?

不,efibootmgr 只是將 UEFI 指向 EFI 文件

如何製作或取得 EFI 檔案?

一種方法是使用 GRUB,如下所述:https://itsfoss.com/install-arch-linux/

這告訴我們我們需要grubefibootmgr安裝,並且安裝了 EFI 分割區。然後發出這個命令:

grub-install --target=x86_64-efi --bootloader-id=<name> --efi-directory=<path-to-efi-mount-point>

<name>使用 efibootmgr 列出 EFI 優先權時將出現的標籤在哪裡。該命令將在 EFI 分割區上產生一個 EFI 文件,並修改 EFI 啟動優先權以指向該 EFI 文件。最後一步是產生 grub 設定檔。

請注意,GRUB 是一個非常靈活的引導程序,使用它來產生 EFI 檔案只是眾多功能之一。 grub 的預設用例似乎是 BIOS 而不是 UEFI,這就是為什麼我花了相當長的時間才找到這個呼叫。

相關內容