多個開機載入程式如何在 EFI 系統分割區上運作

多個開機載入程式如何在 EFI 系統分割區上運作

我的 ESP 看起來像這樣

Boot Dell fedora Microsoft

在 Boot 目錄中,有一個名為的引導程序,bootx64.efi據我所知,這是首先啟動的預設引導程序。但在 fedora 目錄中還有另一個名為 的引導程式(grub2)grubx64.efi

這些引導程式各自的功能是什麼?哪一個提供boot-menu

答案1

bootx64.efi沒有先開始。大多數時候,它根本沒有開始。

EFI 韌體有自己的“啟動選單”,類似於 GRUB 提供的選單,但位於啟動過程的早期階段。就像 GRUB 允許您選擇要執行的 Linux 核心一樣,EFI 開機選單可讓您選擇要執行的 EFI 開機程式 — 選擇是 GRUB 本身或 Windows 開機載入程式。 (並且,與 GRUB 的選單一樣,預設通常不會顯示 EFI 開機選單;您必須在啟動期間按熱鍵才能看到它。)

EFI 啟動選單中的項目由儲存在主機板 NVRAM(「BIOS 設定」記憶體)中的設定資料定義。此配置不會儲存在檔案中,但在 Fedora 中您應該能夠使用該efibootmgr程式看到它。每個條目都包含一個人類可讀的名稱(在選單中顯示)和 EFI 系統分割區中引導程式的路徑,以及確定在不按熱鍵時預設開機哪個項目的優先編號檢視功能表。

這些 NVRAM 開機條目(通常)由作業系統安裝程式建立。當您安裝作業系統並將開機載入程式檔案放置在 EFI 系統分割區中時,它也會為 NVRAM 配置新增一個項目,以便新的開機載入程式將在 EFI 開機功能表中可用。 (在許多情況下,它還會將該新條目設定為預設條目,以便您剛安裝的作業系統將自行啟動,而無需開啟 EFI 啟動選單並手動選擇它。)

Boot/bootx64.efi當 EFI 尚未配置任何引用磁碟上其他開機程式的 NVRAM 開機條目時,該程式是一個後備程式。它對於可啟動 CD 和 USB 驅動器等可移動媒體很重要,但在硬碟上通常不使用它。 Windows 安裝程式建立一個Boot/bootx64.efi作為故障保護;它只是一個副本Microsoft/Boot/bootmgfw.efi(至少在 Windows 7 中;我不知道其他版本)。

在我的系統上,我已將 Microsoft 替換bootx64.efi電噴外殼,這樣,如果我不知何故發現自己沒有任何NVRAM 引導條目,並且實際上依賴於後備引導程序,我就會進入一個shell,在其中我可以檢查情況並手動運行其他引導程序之一,而不是讓系統只引導Windows自動地。 (我還在 GRUB 選單中新增了一個條目,這樣即使系統正常運作,我也可以選擇啟動 EFI shell。)

相關內容