iPXE discussion forum

Full Version: Use feature indicator to break infinite loop e.g. when booting Virtualbox VM
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

I found a solution to a very specific problem I think which is worth sharing. This thread is about how to break the infinite loop in situations where your server / client is equipped with an iPXE ROM which misses crucial features and your DHCP / TFTP server is Dnsmasq.

So this is the exact context:
  • DHCP and TFTP is provided by Dnsmasq (version: 2.79 running on CentOS 8.1.1911)
  • PXE Clients are VMs in Virtualbox (version: 6.1.4 running on Arch Linux) with virtual network cards already equipped with iPXE
  • Bootable images are bz compressed, so iPXE feature bzImage required

As this didn't work out of the box I did some research without finding a concise solution. I refused to accept any of the following approaches:
  • Patch iPXE in ROM of virtual network cards coming with Virtualbox because this is not just about my personal Virtualbox but about a complete distributed development environment.
  • Uncompress the images to get rid of the bzImages because I just want to use the images as delivered by the various Linux live distributions and Linux installer ISO images.

So I had to break the infinite loop depending on the feature indicator refering to bzImage. This page made me confident that a solution is feasible: [url=https://ipxe.org/appnote/premature]. Actually it is described for ISC dhcpd but what about Dnsmasq. It says:
Quote:NOTE does have dnsmasq “encapsulate”?

And here is how I solved that in Dnsmasq. The trick is the 24 which refers to the feature indicator bzImage. I had tried a lot of different configs before I came finally to this very simple config.

# Set tag ipxe if DHCP option 175 is set and bzimage is supported by iPXE client
# https://ipxe.org/appnote/premature

# Transfer iPXE image to all non iPXE clients

# Transfer iPXE menu to all iPXE clients

Feel free to contact me for any questions regarding this. Any other thoughts on that?

Happy coding!

Reference URL's