Debugging PXE boot with QEMU
In my earlier post, I defined the steps for setting up a PXE boot environment.
However, you might run into configuration problems and booting an actual machine is time-consuming for testing. My situation, for example, was that I could not get the Raspberry serving the PXE-protocol to respond to legitimate requests. I needed a better environment to debug the problem than booting my desktop for every iteration.
And here steps in QEMU. It’s a fine piece of computer science originally by Fabrice Bellard, enabling super-fast virtualization of machines.
The steps I did to procure a PXE-debugging environment in Arch Linux:
Install qemu, brctl:
Create a test QEMU image:
Configure bridged networking, to be used for the VM:
Finally, launch the PXE-booting VM:
It should automatically try to boot over LAN (-boot n
).
By the way, my original problem was that my Raspberry’s firewall did not accept UDP packets. D’oh!
Enables DHCP and the PXE-boot requests were allowed through.