From cb5c4fcd3c5d4070f040d591b2dd1da580f234d1 Mon Sep 17 00:00:00 2001 From: Samuel Dionne-Riel Date: Tue, 20 Apr 2021 17:11:21 -0400 Subject: 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. --- nixos/modules/installer/cd-dvd/iso-image.nix | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'nixos') diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix index 7dd3bf23933..7a4738599b0 100644 --- a/nixos/modules/installer/cd-dvd/iso-image.nix +++ b/nixos/modules/installer/cd-dvd/iso-image.nix @@ -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 -- cgit 1.4.1