NTDETECT 和 NTOSKRNL 是否可用于 UEFI GPT 启动?

NTDETECT 和 NTOSKRNL 是否可用于 UEFI GPT 启动?

我无法理解 ESP 调用引导管理器之后的过程,它将开始加载引导加载程序并传递给内核。

我提到的最后一步是无法理解这里是否会调用 NTDETECT 或 NTOSKRNL,然后调用 WINLOGON 或 LTASS?或者它与 UEFI GPT 引导有何不同?

有人能解释一下吗?

答案1

我无法理解 ESP 调用引导管理器之后的过程,它将开始加载引导加载程序并传递给内核。

启动过程由固件 (EFI) 执行,而不是由 ESP 执行。“ESP”只是一个保存固件使用的文件(引导加载程序等)的分区。

EFI 固件有一个内置的启动管理器,它将设置存储在 NVRAM 中:这就是它如何知道实际要加载 ESP 中的哪个文件。

但是,当谈到 BOOTMGR 或 NTLDR 之类的东西时,固件实际上并没有区分引导管理器和引导加载程序 - 它们都只是由固件启动的 .efi 应用程序。(并且在 BIOS 中,两者都是同一种引导扇区。)

如果应用程序支持显示菜单来选择操作系统(如 NTLDR 或 BOOTMGR 所做的那样),那么它就被称为启动管理器;如果它支持启动操作系统内核本身(如 WINLOAD 所做的那样),那么它就被称为引导加载程序;但对于固件来说,它仍然是同一类型的程序。

因此在 BIOS 上:

  1. 固件读取 NVRAM 数据(通常称为“CMOS”或“BIOS 设置”),告诉它使用哪个磁盘的 MBR。
  2. 固件启动 MBR 引导扇区,然后从 Windows 系统分区启动 BOOTMGR(Windows 引导管理器的 BIOS 变体)。
  3. Windows 启动管理器读取 BCD 并在需要时显示菜单,然后从主 Windows 分区启动 WINLOAD.EXE(Windows 启动加载程序的 BIOS 变体)。
  4. Windows 启动加载程序启动 NTOSKRNL.EXE(主 Windows 内核)。

在 UEFI 上:

  1. 固件读取 NVRAM 数据(EFI 变量),告诉它*.EFI使用哪个文件以及在哪个磁盘上找到它。
  2. 固件从 EFI 系统分区启动 BOOTMGFW.EFI(Windows 启动管理器的 EFI 变体)。
  3. Windows 启动管理器读取 BCD 并在需要时显示菜单,然后从主 Windows 分区启动 WINLOAD.EFI(Windows 启动加载程序的 EFI 变体)。
  4. Windows 启动加载程序启动 NTOSKRNL.EXE(主 Windows 内核)。

两者最终都会启动相同的内核。之后的过程对于两种固件类型也相同。Windows 组件(例如 LSASS)不管无论您是在 EFI 模式还是 BIOS 模式下启动——当它们启动时,固件的主要任务就已经完成。

相关内容