多个引导加载程序如何在EFI系统分区上工作


14

我的ESP看起来像这样

Boot Dell fedora Microsoft

在Boot目录中,它们是一个名为boot-loader的启动器bootx64.efi,我知道它是首先启动的默认启动器。但是在fedora目录中,还有一个名为的引导加载程序(grub2)grubx64.efi

每个引导加载程序的功能是什么?哪个提供boot-menu



这与安全启动有什么关系吗?
user3247608

它与Windows 8许可证有关。
PersianGulf

也许我应该在问题中更清楚地说明这一点-在计算机上禁用了安全启动。现在的问题无关与Windows 8
user3247608

当win8和安全启动故事大胆地显示时,grub和一些启动加载器都有一些文件。
2014年

Answers:


17

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安装程序会创建a Boot/bootx64.efi作为故障保护;它只是Microsoft/Boot/bootmgfw.efi(至少在Windows 7中;我不知道其他版本)的副本。

在我的系统上,我已经用EFI Shellbootx64.efi的副本代替了Microsoft ,因此,如果我以某种方式发现自己没有任何NVRAM引导项,并且实际上依靠后备引导加载程序,那么我将进入一个可以检查情况的shell并手动运行其他启动程序之一,而不是让系统自动启动Windows。(我还在GRUB菜单中为其添加了一个条目,以便即使系统运行正常也可以选择启动EFI Shell。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.