Я пытаюсь загрузить 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), и он хорошо работает с компьютерами с устаревшей 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?
Сегодня вы не сможете загружаться в режиме 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.