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

Reply via email to