aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/bootloader/grub.scm16
-rw-r--r--gnu/system/examples/bare-bones.tmpl4
-rw-r--r--gnu/system/examples/desktop.tmpl7
-rw-r--r--gnu/system/examples/lightweight-desktop.tmpl7
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