From aa5a549c65485ff826267a48795c1564af17f1c9 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 23 Jun 2018 23:38:18 +0200 Subject: bootloader: grub-efi: Support EFI directories relative to MOUNT-POINT. * gnu/bootloader/grub.scm (install-grub-efi): When MOUNT-POINT/EFI-DIR exists, install there rather than EFI-DIR directly. --- gnu/bootloader/grub.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm index a131f3b506..8371888fa5 100644 --- a/gnu/bootloader/grub.scm +++ b/gnu/bootloader/grub.scm @@ -387,12 +387,17 @@ (define install-grub-efi ;; Install GRUB onto the EFI partition mounted at EFI-DIR, for the ;; system whose root is mounted at MOUNT-POINT. (let ((grub-install (string-append bootloader "/sbin/grub-install")) - (install-dir (string-append mount-point "/boot"))) + (install-dir (string-append mount-point "/boot")) + ;; When installing GuixSD, it's common to mount EFI-DIR below + ;; MOUNT-POINT rather than /boot/efi on the live image. + (target-esp (if (file-exists? (string-append mount-point efi-dir)) + (string-append mount-point efi-dir) + efi-dir))) ;; Tell 'grub-install' that there might be a LUKS-encrypted /boot or ;; root partition. (setenv "GRUB_ENABLE_CRYPTODISK" "y") (unless (zero? (system* grub-install "--boot-directory" install-dir - "--efi-directory" efi-dir)) + "--efi-directory" target-esp)) (error "failed to install GRUB (EFI)"))))) -- cgit v1.2.3