[ipxe-devel] Fwd: iPXE UEFI and wimboot

Piotr Klaban post at klaban.torun.pl
Thu Apr 21 12:03:46 UTC 2016


I have to move with our Windows PE installations from BIOS to UEFI.

I figured it out how to boot from ipxe.efi, then load wimboot (all
fresh, downloaded from git).
And I had to change booting from Windows PE x86 image to x64, but size
of that .wim file increased to around 300MB.

And it stops downloading .wim image via HTTP, at different % stages
(sometimes  0-3%, 6x%, 92%, sometimes 96% etc.).
There is no error message, just it stops at specific percent quantity
and moves no further.
In apache log there is just information of downloading part of file:

08:24:21 +0200] "GET /boot/winpe/amd64/sources/LiteTouchPE_x64.wim
HTTP/1.1" 200 298718835 "-" "iPXE/1.0.0+ (40a8a)"
08:22:48 +0200] "GET /boot/winpe/amd64/sources/LiteTouchPE_x64.wim
HTTP/1.1" 200 289250261 "-" "iPXE/1.0.0+ (40a8a)"
08:32:03 +0200] "GET /boot/winpe/amd64/sources/LiteTouchPE_x64.wim
HTTP/1.1" 200 298718835 "-" "iPXE/1.0.0+ (40a8a)"
11:33:52 +0200] "GET /boot/winpe/amd64/sources/LiteTouchPE_x64.iso
HTTP/1.1" 200 65627704 "-" "iPXE/1.0.0+ (40a8a)"
11:53:32 +0200] "GET /boot/winpe/amd64/sources/LiteTouchPE_x64.wim
HTTP/1.1" 200 10393744 "-" "iPXE/1.0.0+ (40a8a)"
12:42:44 +0200] "GET /boot/winpe/amd64/sources/LiteTouchPE_x86.wim
HTTP/1.1" 200 270562237 "-" "iPXE/1.0.0+ (6a22)"
13:41:38 +0200] "GET /boot/winpe/amd64/sources/LiteTouchPE_x64.wim
HTTP/1.1" 200 444536 "-" "iPXE/1.0.0+ (40a8a)"

Does UEFI iPXE version support only smaller .wim files to download via HTTP?
In Legacy BIOS mode undionly.kpxe everything works smoothly.

I changed http to tftp and it is slower, sometimes timeouts, but works.
(I had to patch atftp for --allow-wraparound)

set base-url ${arch}
kernel wimboot pause
initrd ${base-url}/ISO/boot/bcd          BCD || goto failed
initrd ${base-url}/ISO/boot/boot.sdi     boot.sdi || goto failed
initrd Fonts/segmono_boot.ttf segmono_boot.ttf || goto failed
initrd Fonts/segoe_slboot.ttf segoe_slboot.ttf || goto failed
initrd Fonts/wgl4_boot.ttf    wgl4_boot.ttf || goto foiled
#initrd -n boot.wim ${base-url}/sources/LiteTouchPE_x64.wim boot.wim
|| goto failed
initrd -n boot.wim tftp://192.168.xx.xx/LiteTouchPE_x64.wim boot.wim
|| goto failed

How can I debug downloading .wim file in iPXE?

I even tried to load ISO from ipxe menu file, but apparently memdisk
does not support UEFI
-rwxr-xr-x 2 root root 330878976 Apr 21 11:14 LiteTouchPE_x64.iso
-rwxr-xr-x 3 root root 298718835 Apr 21 11:13 LiteTouchPE_x64.wim

So now Legacy BIOS is loading .wim via HTTP, and UEFI mode is loading
.wim via TFTP.

Best regards,

Piotr Klaban

More information about the ipxe-devel mailing list