多个引导加载程序如何在 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。)

相关内容