Sharing a iPXE script (using wimboot) I am using these days along with Tiny PXE Server to boot winpe over the network on multiple platform : pcbios i386, pcbios x86_64, efi i386, efi x86_64.
Tiny PXE Server is serving by default pcbios ipxe.pxe and also, depending on the client architecture, serving the matching ipxe efi version.
See below my config.ini and a custom wimboot.ipxe script.
[dhcp] proxydhcp=1 httpd=1 bind=1 root=\files filename=ipxe.pxe altfilename=wimboot.ipxe [arch] 00006=ipxe-i386.efi 00007=ipxe-x86_64.efi 00009=ipxe-x86_64.efi
#!ipxe #more about wimboot tips and tricks : http://ipxe.org/wimboot set boot-url http://${dhcp-server} #note : we are not going to use cpuid/arch cpuid --ext 29 && set arch x64 || set arch x86 echo ${arch} echo ${platform}_${buildarch} goto ${platform}_${buildarch} || goto unknown :pcbios_x86_64 kernel ${boot-url}/wimboot initrd ${boot-url}/BOOTMGR.EXE bootmgr.exe initrd ${boot-url}/BOOT/BCD BCD initrd ${boot-url}/BOOT/BOOT.SDI BOOT.SDI initrd ${boot-url}/SOURCES/${buildarch}/BOOT.WIM BOOT.WIM boot :pcbios_i386 kernel ${boot-url}/wimboot initrd ${boot-url}/BOOTMGR.EXE bootmgr.exe initrd ${boot-url}/BOOT/BCD BCD initrd ${boot-url}/BOOT/BOOT.SDI BOOT.SDI initrd ${boot-url}/SOURCES/${buildarch}/BOOT.WIM BOOT.WIM boot :efi_x86_64 kernel ${boot-url}/wimboot initrd ${boot-url}/bootx64.efi bootx64.efi initrd ${boot-url}/EFI/MICROSOFT/BOOT/BCD BCD initrd ${boot-url}/BOOT/BOOT.SDI BOOT.SDI initrd ${boot-url}/SOURCES/${buildarch}/BOOT.WIM BOOT.WIM boot :efi_i386 kernel ${boot-url}/wimboot.i386 initrd ${boot-url}/bootia32.efi bootia32.efi initrd ${boot-url}/EFI/MICROSOFT/BOOT/BCD BCD initrd ${boot-url}/BOOT/BOOT.SDI BOOT.SDI initrd ${boot-url}/SOURCES/${buildarch}/BOOT.WIM BOOT.WIM boot :unknown echo Unknown platform ${platform}_${buildarch}