Alexandre Blanchette
2014-Jan-15 02:28 UTC
[syslinux] PXE booting WinPE with UEFI architecture
With the BIOS architecture, I was used to boot WinPE from PXELINUX. I used 4 different ways: 1- Calling windows' native PXE loader directly from the config file with a 'kernel' line. 2- Calling windows' native PXE loader with pxechn.c32. 3- Loading an ISO with memdisk 4- iPXE project's wimboot, which relies on memdisk Methods 1 and 2 are slow because loading the bulk of the system is done by TFTP. Methods 3 and 4 could be adapted to use HTTP. With the UEFI architecture, memdisk seem to be out of the equation now, so methods 3 and 4 are out. Although I'd really appreciate if the functionnality memdisk provided could be ported somehow to the UEFI architecture. For option 1, Windows' PXE loader is bootmgfw.efi. The configuration looks like this: LABEL WinPE50 MENU LABEL Windows Boot Manager KERNEL \boot\x64\bootmgfw.efi I then get: Loading \boot\x64\bootmgfw.efi... failed: Bad file number How can I load a EFI file? Lastly for method 2, with the following configuration: LABEL WinPE50 MENU LABEL Windows Boot Manager COM32 pxechn.c32 APPEND \boot\x64\bootmgfw.efi I get: pxechn.c32: ERROR: Unable to retrieve first packet Could not unpack packet Using SYSLINUX 6.02-pre16 I could not use SYSLINUX 6.02-final because of the TFTP port bug. -- Alexandre Blanchette <blanalex at gmail.com>
Hello Alexandre, Unfortunately, it seems that pxechn.c32 does not work with EFI. I have experimented with several Linux boot loaders and x64 UEFI in the past, but only GRUB2 has been able to start a Windows (Vista or higher) bootloader via PXE so far (iPXE and PXELINUX were not able to). However, I cannot use grub because I need pxechn.c32s functionality to manipulate WDS/BINL responses so that I can have different BCDs for different menu entries, so I am stuck for the moment, too. :-( All the best, Andreas