diff options
-rw-r--r-- | gnu/bootloader/grub.scm | 16 | ||||
-rw-r--r-- | gnu/system/examples/bare-bones.tmpl | 4 | ||||
-rw-r--r-- | gnu/system/examples/desktop.tmpl | 7 | ||||
-rw-r--r-- | gnu/system/examples/lightweight-desktop.tmpl | 7 |
4 files changed, 26 insertions, 8 deletions
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm index ef62fe059b..a9f0875f36 100644 --- a/gnu/bootloader/grub.scm +++ b/gnu/bootloader/grub.scm @@ -389,7 +389,20 @@ submenu \"GNU system, old configurations...\" {~%") (unless (zero? (system* grub "--no-floppy" "--boot-directory" install-dir device)) - (error "failed to install GRUB"))))) + (error "failed to install GRUB (BIOS)"))))) + +(define install-grub-efi + #~(lambda (bootloader efi-dir mount-point) + ;; 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"))) + ;; 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)) + (error "failed to install GRUB (EFI)"))))) @@ -408,6 +421,7 @@ submenu \"GNU system, old configurations...\" {~%") (define* grub-efi-bootloader (bootloader (inherit grub-bootloader) + (installer install-grub-efi) (name 'grub-efi) (package grub-efi))) diff --git a/gnu/system/examples/bare-bones.tmpl b/gnu/system/examples/bare-bones.tmpl index f7b8823d4f..a10ee6e7fe 100644 --- a/gnu/system/examples/bare-bones.tmpl +++ b/gnu/system/examples/bare-bones.tmpl @@ -12,7 +12,9 @@ ;; Assuming /dev/sdX is the target hard disk, and "my-root" is ;; the label of the target root file system. - (bootloader (grub-configuration (device "/dev/sdX"))) + (bootloader (bootloader-configuration + (bootloader grub-bootloader) + (device "/dev/sdX"))) (file-systems (cons (file-system (device "my-root") (title 'label) diff --git a/gnu/system/examples/desktop.tmpl b/gnu/system/examples/desktop.tmpl index 8b02659478..3cfbd9add6 100644 --- a/gnu/system/examples/desktop.tmpl +++ b/gnu/system/examples/desktop.tmpl @@ -13,19 +13,20 @@ ;; Assuming /dev/sdX is the target hard disk, and "my-root" ;; is the label of the target root file system. - (bootloader (grub-configuration (device "/dev/sdX"))) + (bootloader (bootloader-configuration + (bootloader grub-bootloader) + (device "/dev/sdX"))) ;; Specify a mapped device for the encrypted root partition. ;; The UUID is that returned by 'cryptsetup luksUUID'. (mapped-devices (list (mapped-device (source (uuid "12345678-1234-1234-1234-123456789abc")) - (target "the-root-device") + (target "my-root") (type luks-device-mapping)))) (file-systems (cons (file-system (device "my-root") - (title 'label) (mount-point "/") (type "ext4") (dependencies mapped-devices)) diff --git a/gnu/system/examples/lightweight-desktop.tmpl b/gnu/system/examples/lightweight-desktop.tmpl index 6fb6283d29..127ceb4dc5 100644 --- a/gnu/system/examples/lightweight-desktop.tmpl +++ b/gnu/system/examples/lightweight-desktop.tmpl @@ -12,9 +12,10 @@ (locale "en_US.utf8") ;; Use the UEFI variant of GRUB with the EFI System - ;; Partition on /dev/sda1. - (bootloader (grub-configuration (grub grub-efi) - (device "/dev/sda1"))) + ;; Partition mounted on /boot/efi. + (bootloader (bootloader-configuration + (bootloader grub-efi-bootloader) + (device "/boot/efi"))) ;; Assume the target root file system is labelled "my-root". (file-systems (cons* (file-system |