4

I am trying to set up a GParted Live PXE boot and follow the PXELINUX instructions to set up the boot.

I've got it working with TFTP but now I want to switch the loading of vmzlinuz, initrd and other "large" files to HTTP because it is slow.

However, when I change, the initrd=/gparted/initrd (TFTP) to http://192.168.0.1/gparted/initrd in the pxe config, the loading screen hangs indefinitely at

Getting cached packet
My IP is 192.168.0.97
Loading vmlinuz... ok                         <-- that is still loadedvia TFTP)
Loading http://192.168.0.1/gparted/initrd...

Looking at the network traffic via wireshark I can see the relevant transmissions for /gparted/syslinux.efi, /gparted/ldlinux.e64, /gparted/pxelinux.cfg/default, /gparted/vmlinuz. After that there is dead silence so I assume that the HTTP stack is not working as intended.

The PXELINUX page says:

Since version 5.10, a special PXELINUX binary, lpxelinux.0, natively supports HTTP and FTP transfers

However, the UEFI section says:

The "(l)pxelinux.0" bootloaders are capable of netbooting BIOS-based clients. Hardware using UEFI has to use the adequate "syslinux.efi" (for EFI IA32 or for EFI X64, respectively) instead of using "(l)pxelinux.0".

As you can see from the list of the TFTP loaded files, after my experience in my earlier PXE question, I have gone with the UEFI loader.

Is there a also an extra "l"-version of the UEFI bootloaders that offers HTTP support? What can I do to diagnose further?

3
  • According to this message, it should support HTTP. It may depend on UEFI features to do so, which may be broken in your specific implementation.
    – Daniel B
    Commented Sep 9, 2016 at 18:13
  • After experimenting a little, I find that Syslinux is unusable with UEFI netboot. I suggest you switch to something else like Grub2.
    – Daniel B
    Commented Sep 9, 2016 at 20:05
  • @DanielB: Thanks for the research effort. I was about to verify some other UEFI implementations but have very limited time. Make that comment into an answer with a bit of explanation what you tried and I will accept it. Commented Sep 9, 2016 at 20:11

1 Answer 1

5

According to this message, syslinux.efi is supposed to support HTTP. It may rely on some UEFI functions/services to do so. Your board’s specific UEFI implementation may be broken in that regard.

So I performed some tests using my PC and QEMU with the OVMF firmware, using my existing PXELINUX config. I observed the following effects:

  • When I had local boot as the default and a timeout set, it would exit immediately, returning me to the boot selection menu (PC) or rebooting (QEMU).
  • When I had any UI (tested: vesamenu.c32, menu.c32) enabled, it would hang (PC) or reboot (QEMU).
  • When I removed UI, DEFAULT and TIMEOUT, I arrived at the usual text-mode prompt. Nothing would boot, though, it only complained about neither UI nor DEFAULT being set.

This experience, combined with the fact that GRUB2 worked flawlessly including graphics mode on both my PC and QEMU leads me to the conclusion that SYSLINUX 6.03 is not suitable (yet) for UEFI netboot.

Unfortunately, GRUB2 wasn’t made to be set up “by hand″. It is also very heavy, taking several seconds to load over PXE (using the regular modular version). I don’t know any better alternative, though.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .