Grub

多個引導載入程序如何在 EFI 系統分區上工作

  • October 11, 2014

我的 ESP 看起來像這樣

Boot Dell fedora Microsoft

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

每個引導載入程序的功能是什麼?哪一個提供boot-menu

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 中;我不知道其他版本)。

在我的系統上,我已經用EFI Shellbootx64.efi的副本替換了那個 Microsoft ,所以如果我發現自己沒有任何 NVRAM 引導條目並且實際上依賴於備份引導載入程序,我會被放到一個可以檢查情況的 shell並手動執行其他啟動程序之一,而不是讓系統自動啟動 Windows。(我還在 GRUB 菜單中為其添加了一個條目,這樣即使系統正常工作,我也可以選擇啟動 EFI shell。)

引用自:https://unix.stackexchange.com/questions/160500