Hey Sven, su 19.1.2025 klo 16.32 Sven Geuer ([email protected]) kirjoitti: > On Sun, 2025-01-19 at 12:14 +0200, Martin-Éric Racine wrote: > > ipxe nowadays ships EFI binaries but still only produces GRUB menu > > entries for the BIOS binary (lkrn). > > > > It might be a good idea to borrow some ideas from the memtest86+ GRUB > > scripts to produce distinct menu entries. > > > > Best Regards, > > Martin-Éric > > In actual fact ipxe creates only a 64 bit EFI binary [1] and, on an EFI > platform, tailors the GRUB menu entry to pointing to it [2]. > > According to your System Information you are running a 32 bit system > for which ipxe currently does not create an EFI binary at all. Not sure > what would happen if you would select ipxe's GRUB menu entry. > > Admittedly ipxe's current GRUB script is somewhat messy and requires > improvements anyway. Thanks for pointing to memtest86+. > > Consequently I assume you are requesting ipxe to provide also a 32 bit > EFI binary and that being supported with GRUB. Do you confirm?
Here is what I see on this 32-bit host: $ uname -a Linux u1400 6.1.0-30-686-pae #1 SMP PREEMPT_DYNAMIC Debian 6.1.124-1 (2025-01-12) i686 GNU/Linux $ dir -1 /boot/ config-6.1.0-29-686-pae config-6.1.0-30-686-pae grub initrd.img-6.1.0-29-686-pae initrd.img-6.1.0-30-686-pae ipxe-arm64.efi ipxe.efi ipxe.lkrn memtest86+ia32.bin memtest86+ia32.efi memtest86+x64.bin memtest86+x64.efi System.map-6.1.0-29-686-pae System.map-6.1.0-30-686-pae vmlinuz-6.1.0-29-686-pae vmlinuz-6.1.0-30-686-pae As seen above, iPXE clearly installs 3 binaries, regardless of the target architecture. $ sudo update-grub Generating grub configuration file ... Found background image: /usr/share/images/desktop-base/desktop-grub.png Found linux image: /boot/vmlinuz-6.1.0-30-686-pae Found initrd image: /boot/initrd.img-6.1.0-30-686-pae Found linux image: /boot/vmlinuz-6.1.0-29-686-pae Found initrd image: /boot/initrd.img-6.1.0-29-686-pae Found iPXE image: /boot/ipxe.lkrn Found memtest86+ 64bit EFI image: /boot/memtest86+x64.efi Found memtest86+ 32bit EFI image: /boot/memtest86+ia32.efi Found memtest86+ 64bit image: /boot/memtest86+x64.bin Found memtest86+ 32bit image: /boot/memtest86+ia32.bin Warning: os-prober will not be executed to detect other bootable partitions. Systems on them will not be added to the GRUB boot configuration. Check GRUB_DISABLE_OS_PROBER documentation entry. Adding boot menu entry for UEFI Firmware Settings ... done As seen above, none of the EFI iPXE binaries are found by update-grub. Since you wrote that it's for x86-64, it kinda makes sense not to find it on an x86-32 host, but it nonetheless ships in the package, along with the arm64 EFI binary. Meanwhile, memtest86+ installs both BIOS and EFI images, and comes with GRUB scripts to produce menu entries for every memtest86+ variant it finds. The only minor hickup here here is that it also ships 64-bit images on i386. While an amd64 host can indeed be launched in 32-bit mode, the reverse is not true. Martin-Éric

