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.
master
Samuel Dionne-Riel 2021-04-20 17:11:21 -04:00
parent 9413da26fd
commit cb5c4fcd3c
1 changed files with 7 additions and 5 deletions

View File

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