EFI Boot Loader 没有特定名称吗?
就像视窗 BIOS 主引导记录,NTLD 目录是引导加载程序和Linux 主引导记录这是GRUB对于 LINUX EFI,它是 GRUB 2
在 UEFI 模式下,进程从哪里开始?ESP 是否首先执行 EFI Boot Loader,然后再执行其他操作?GPT 在这两者之间起什么作用?
答案1
EFI Boot Loader 没有特定的名称,因为这样的引导加载程序实际上并不存在。
EFI 上的引导涉及引导管理器,内置于固件中。EFI 系统完全不依赖存储在引导记录 (VBR 或 MBR) 中的引导程序。固件知道如何读取分区表并理解 FAT 文件系统格式,而 IBM PC 兼容固件无法做到这一点,需要为此加载程序。
指定的分区,采用 FAT 文件系统格式格式化并用特定的知名分区类型标识,称为 EFI 系统分区,固件知道如何找到它。
EFI 系统分区是一个真正的系统卷,由分区表中的类型代码标识,无需像 Microsoft 的系统保留分区那样猜测。它包含特定的引导加载程序,这些程序是 EFI 可执行程序,由 EFI 引导管理器加载和运行。
EFI 可执行程序是独立程序,仅使用机器固件服务,不需要底层操作系统即可运行。它们可以是操作系统引导加载程序或“预引导”维护/诊断程序。按照惯例,所有操作系统的所有引导加载程序都存储在 EFI 系统分区中目录的特定于供应商的子目录中\EFI\
。
对于 64 位版本的 Windows NT 5.x,EFI 引导加载程序是
\EFI\Microsoft\WINNT50\IA64LDR.EFI
,或者有时是
\EFI\Microsoft\WINNT50C\IA64LDR.EFI
。它包括 NTLDR,即从 Windows 引导卷中的文件加载和执行 Windows NT 内核的 Windows NT 引导加载程序。
对于 Windows NT 6,EFI 引导加载程序是\EFI\Microsoft\Boot\Bootmgfw.efi
,即 Microsoft 引导管理器,它是第二个引导管理器,它可能再次显示第二个引导选项菜单,列出更多要调用的引导加载程序和要传递给它们的选项。
对于 64 位版本的 Linux,EFI 引导加载程序是 或
\EFI\RedHat\elilo.efi
,\EFI\SuSE\elilo.efi
它是 LILO 的修改版本,LILO 是从系统卷中的文件加载和执行 Linux 内核的 Linux 引导加载程序。
ELILO 与 Microsoft Boot Manager 类似,包含第二级启动选项,保存在单独的elilo.conf
配置文件中,而不是将对此类多启动选项的支持集成到 EFI 启动加载程序和 EFI 变量中。
对于 Apple,固件会忽略其 Intel Macintoshes 上的大部分 EFI 规范。EFI 系统分区是空的且未使用,并且 EFI 引导管理器被在其之前执行的 Apple 引导加载程序所掩盖。
更多信息请参阅:
答案2
EFI Boot Loader 没有特定名称吗?
有许多EFI 引导加载程序,就像 BIOS 引导加载程序一样,也有很多。但它们的名称通常完全相同。
在 Windows Vista 及更高版本中:
启动管理器(显示启动菜单)称为“Windows 启动管理器”。其文件名在 BIOS(
BOOTMGR
)和 UEFI(Bootmgfw.efi
)之间有所不同,但在两种情况下都称为 Windows 启动管理器。引导加载程序(从引导菜单启动,实际上启动 Windows)称为“Windows 引导加载程序”或 WINLOAD.EXE。两种模式最终都会到达同一个引导加载程序。
在 Windows XP(不支持 UEFI,但支持 Itanium EFI)中:
- BIOS 引导加载程序/引导管理器被称为“NTLDR”。
- EFI 引导加载程序存储在文件“IA64LDR.EFI”中。
在 Linux 上,有多个可用的引导管理器和引导加载程序:
GRUB 2.x 同时支持 BIOS 和 UEFI 系统,在两种情况下都被称为“GRUB 2”。
Syslinux 也支持这两种模式。UEFI 版本的 Syslinux 仍称为“Syslinux”。
有一些启动管理器/加载器仅适用于 BIOS(例如 LILO、GRUB 0.x),还有一些仅适用于 UEFI(例如 systemd-boot、rEFInd、eLILO、efilinux)。
在 UEFI 模式下,进程从哪里开始?ESP 是否首先执行 EFI Boot Loader,然后再执行其他操作?GPT 在这两者之间起什么作用?
“MBR”(主引导记录)同时保存两部分内容:前 440 个字节中的 BIOS 引导代码和剩余 72 个字节中的分区表。
相比之下,启动代码并不直接保存在 GPT 中 - GPT 是仅有的分区表。相反,EFI 系统有一个指定的系统分区 (ESP),引导代码以常规文件的形式存储在其中。
因此,GPT 和 ESP 都无法真正自行启动任何东西。相反,EFI 固件直接启动具体文件来自 ESP。