Загрузка с WinPE через PXE с системой UEFI

Я пытаюсь загрузить WinPE, используя pxelinux.

Вот моя запись в 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), и он хорошо работает с компьютерами legacy-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 работают.

Что я могу сделать для загрузки WinPE, когда я нахожусь на компьютере UEFI?

1 ответ

Решение

Сегодня вы не сможете загрузиться в режиме UEFI с помощью Syslinux/winboot. 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.

Другие вопросы по тегам