iso-image: Hide rEFInd from menu in known non-working situations

Looks like GRUB has issues loading EFI binaries from (cd0), which is
what would be used in e.g. qemu with OVMF with `-cdrom`. Apparently also
what is used with AArch64 + U-Boot USB.
This commit is contained in:
Samuel Dionne-Riel 2021-04-20 17:11:21 -04:00
parent 9413da26fd
commit cb5c4fcd3c

View File

@ -365,11 +365,13 @@ let
} }
${lib.optionalString (refindBinary != null) '' ${lib.optionalString (refindBinary != null) ''
# GRUB apparently cannot do "chainloader" operations on "CD".
if [ "\$root" != "cd0" ]; then
menuentry 'rEFInd' --class refind { menuentry 'rEFInd' --class refind {
# UUID is hard-coded in the derivation. # \$root defaults to the drive the EFI is found on.
search --set=root --no-floppy --fs-uuid 1234-5678
chainloader (\$root)/EFI/boot/${refindBinary} chainloader (\$root)/EFI/boot/${refindBinary}
} }
fi
''} ''}
menuentry 'Firmware Setup' --class settings { menuentry 'Firmware Setup' --class settings {
fwsetup fwsetup