使用 UEFI 系统通过 PXE 启动到 WinPE

使用 UEFI 系统通过 PXE 启动到 WinPE

我正在尝试使用 pxelinux 启动 WinPE。

这是我在pxelinux.cfg/default文件中的条目:

LABEL Windows Preinstallation Environment
    COM32 linux.c32
    APPEND wimboot initrdfile=http://pxe/winpe/bcd,http://pxe/winpe/boot.sdi,http://pxe/winpe/boot.wim

我正在使用 wimboot(来自 iPXE 项目),它与传统 BIOS 计算机配合得很好(我可以毫无问题地使用我的 WinPE)。我遵循了这个iPXE wimboot 文档并将其适配到pxelinux。

当涉及到 UEFI 计算机时,它不再起作用。它加载了所有内容,但在最后一步似乎崩溃了:

Loading wimboot... ok
Encapsulating http://pxe/winpe/bcd... ok
Encapsulating http://pxe/winpe/boot.sdi... ok
Encapsulating http://pxe/winpe/boot.wim... ok
Failed to exit boot services: 0x8000000000000002
syslinux_boot_linux() failed: Error 0
linux.c32: Boot aborted!

我的所有其他条目pxelinux.cfg/default均有效。

当我在 UEFI 计算机上时,我该怎么做才能使 WinPE 启动?

答案1

今天,您将无法使用 Syslinux/winboot 在 UEFI 模式下启动。Syslinux 6.03 支持 BIOS 和 UEFI 模式,但目前并非所有 Syslinux 生态系统的工具都已迁移到 UEFI。

也就是说,如果您以前启动 pxelinux.0 (BIOS),现在您应该启动 syslinux.efi (UEFI)。linux.c32 是一个仅适用于 BIOS 的工具,尚未迁移到 UEFI(我的意思是无法加载 efi 映像)。chainload、pxechn、wimboot 等也是如此。iPXE 项目有类似的问题,它没有完全迁移到 UEFI,那么您拥有的功能仅适用于 BIOS。

今天,要启动 UEFI winPE,最好的选择是将 bootmgrfw.efi 定义为您的 NBP(网络启动程序),即使这会迫使您在预定路径中分配 BCD 或使用相应的 DHCP 选项。

相关内容