我的 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。)