On Wed, 04 Jun 2025 12:22:13 +0200 Laurent Vallar <v...@zbla.net> wrote: > Package: ipxe-qemu > Version: 1.21.1+git20250501.dad20602+dfsg-1 > Severity: important > > Dear Maintainer, > > iPXE support no longer appears to be available for network booting of > virtual machines. > > For example, a functional libvirt domain definition using > http://boot.netboot.xyz under Bookworm with version > 1.0.0+git-20190125.36a4c85-5.1 no longer works: no iPXE boot and > therefore no HTTP requests to network boot are made. > > See the attached netboot_test.sh file to reproduce my test. > > If I manually install the bookworm version (1.0.0+git-20190125.36a4c85-5.1) > on trixie, the same test becomes functional again, and network booting via > HTTP on http://boot.netboot.xyz works as expected. > > This appears to be a significant regression. >
Hi, thanks for reporting this. If I understand your script correct, the script attempts to boot a virtual machine with UEFI firmware from an iPXE script, which is now not supported. The reason is that ROM files in ipxe-qemu contain code used for legacy bios boot and for UEFI boot at the same time. To ensure qemu virtual machine live migration possible, the size of the ROM should remain in the same power of 2 bucket, which is 256k now. The detailed discussion is in #881263. The fact is that we cannot provide boot code for legacy bios boot and for UEFI boot at the same time within that limit. As a result, the code for UEFI boot contains no ipxe stack, but a simple virtual NIC driver, so that the EDK II firmware can use it for an normal IPXE boot. The detailed discussion about this is in #1095073. This change is also noted in the NEWS of ipxe-qemu. For your use case, you may start an tftp server, and provides the ipxe-amd64.efi in the ipxe package, and use the method in [1] to further boot into your iPXE script. [1]: https://ipxe.org/howto/chainloading Cheers, Miao Wang