Source: ipxe
Version: 1.0.0+git-20190125.36a4c85-1
Severity: normal

Dear maintainer,

https://packages.debian.org/buster/all/ipxe/filelist ships the following files (among others):

/boot/ipxe.efi
/boot/ipxe.lkrn
/etc/grub.d/20_ipxe

But, when booting under UEFI, /etc/grub.d/20_ipxe tries to load ipxe.lkrn instead of the correct ipxe.efi, and crashes.

Here's a proposed patch that addresses the issue:

diff ./a/etc/grub.d/20_ipxe  ./b/etc/grub.d/20_ipxe
22c22,29
<    linux16 $IPXEPATH
---
>    if [ "\$grub_platform" = "efi" ]; then
>            chainloader ${IPXEPATH%.lkrn}.efi
>    else
>            linux16 $IPXEPATH
>            if [ -f ${IPXEPATH%.lkrn}.ipxe ]; then
>                    initrd16 ${IPXEPATH%.lkrn}.ipxe
>            fi
>    fi


This dynamically checks if the platform is efi or not, and loads the correct ipxe.{efi|lkrn}, and additionally, in the BIOS case, it allows the user to provide an ipxe script in /boot/ipxe.ipxe, which is loaded as initrd.
This functionality isn't yet supported by upstream iPXE under UEFI.

Reply via email to