aboutsummaryrefslogtreecommitdiff
path: root/gnu/bootloader/grub.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/bootloader/grub.scm')
-rw-r--r--gnu/bootloader/grub.scm47
1 files changed, 22 insertions, 25 deletions
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index 40918ea307..2d9a39afc3 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -58,8 +58,8 @@
;;;
;;; Code:
-(define* (normalize-file file mount-point btrfs-subvolume-file-name)
- "Strip MOUNT-POINT and prepend BTRFS-SUBVOLUME-FILE-NAME to FILE, a
+(define* (normalize-file file mount-point store-directory-prefix)
+ "Strip MOUNT-POINT and prepend STORE-DIRECTORY-PREFIX, if any, to FILE, a
G-expression or other lowerable object denoting a file name."
(define (strip-mount-point mount-point file)
@@ -72,13 +72,13 @@ G-expression or other lowerable object denoting a file name."
file)))
file))
- (define (prepend-btrfs-subvolume-file-name btrfs-subvolume-file-name file)
- (if btrfs-subvolume-file-name
- #~(string-append #$btrfs-subvolume-file-name #$file)
+ (define (prepend-store-directory-prefix store-directory-prefix file)
+ (if store-directory-prefix
+ #~(string-append #$store-directory-prefix #$file)
file))
- (prepend-btrfs-subvolume-file-name btrfs-subvolume-file-name
- (strip-mount-point mount-point file)))
+ (prepend-store-directory-prefix store-directory-prefix
+ (strip-mount-point mount-point file)))
@@ -135,14 +135,14 @@ file with the resolution provided in CONFIG."
(_ #f)))))
(define* (eye-candy config store-device store-mount-point
- #:key btrfs-store-subvolume-file-name system port)
+ #:key store-directory-prefix system port)
"Return a gexp that writes to PORT (a port-valued gexp) the 'grub.cfg' part
concerned with graphics mode, background images, colors, and all that.
STORE-DEVICE designates the device holding the store, and STORE-MOUNT-POINT is
its mount point; these are used to determine where the background image and
fonts must be searched for. SYSTEM must be the target system string---e.g.,
-\"x86_64-linux\". BTRFS-STORE-SUBVOLUME-FILE-NAME is the file name of the
-Btrfs subvolume, to be prepended to any store path, if any."
+\"x86_64-linux\". STORE-DIRECTORY-PREFIX is a directory prefix to prepend to
+any store file name."
(define setup-gfxterm-body
(let ((gfxmode
(or (and-let* ((theme (bootloader-configuration-theme config))
@@ -181,12 +181,12 @@ fi~%" #+font-file)
(define font-file
(normalize-file (file-append grub "/share/grub/unicode.pf2")
store-mount-point
- btrfs-store-subvolume-file-name))
+ store-directory-prefix))
(define image
(normalize-file (grub-background-image config)
store-mount-point
- btrfs-store-subvolume-file-name))
+ store-directory-prefix))
(and image
#~(format #$port "
@@ -320,13 +320,13 @@ code."
#:key
(system (%current-system))
(old-entries '())
- btrfs-subvolume-file-name)
+ store-directory-prefix)
"Return the GRUB configuration file corresponding to CONFIG, a
<bootloader-configuration> object, and where the store is available at
-STORE-FS, a <file-system> object. OLD-ENTRIES is taken to be a list
-of menu entries corresponding to old generations of the system.
-BTRFS-SUBVOLUME-FILE-NAME may be used to specify on which subvolume a
-Btrfs root file system resides."
+STORE-FS, a <file-system> object. OLD-ENTRIES is taken to be a list of menu
+entries corresponding to old generations of the system.
+STORE-DIRECTORY-PREFIX may be used to specify a store prefix, as is required
+when booting a root file system on a Btrfs subvolume."
(define all-entries
(append entries (bootloader-configuration-menu-entries config)))
(define (menu-entry->gexp entry)
@@ -336,17 +336,14 @@ Btrfs root file system resides."
(arguments (menu-entry-linux-arguments entry))
(kernel (normalize-file (menu-entry-linux entry)
device-mount-point
- btrfs-subvolume-file-name))
+ store-directory-prefix))
(initrd (normalize-file (menu-entry-initrd entry)
device-mount-point
- btrfs-subvolume-file-name)))
+ store-directory-prefix)))
;; Here DEVICE is the store and DEVICE-MOUNT-POINT is its mount point.
;; Use the right file names for KERNEL and INITRD in case
;; DEVICE-MOUNT-POINT is not "/", meaning that the store is on a
;; separate partition.
-
- ;; When BTRFS-SUBVOLUME-FILE-NAME is defined, prepend it the kernel and
- ;; initrd paths, to allow booting from a Btrfs subvolume.
#~(format port "menuentry ~s {
~a
linux ~a ~a
@@ -360,7 +357,7 @@ Btrfs root file system resides."
(eye-candy config
(menu-entry-device (first all-entries))
(menu-entry-device-mount-point (first all-entries))
- #:btrfs-store-subvolume-file-name btrfs-subvolume-file-name
+ #:store-directory-prefix store-directory-prefix
#:system system
#:port #~port))
@@ -371,8 +368,8 @@ Btrfs root file system resides."
(keymap* (and layout
(keyboard-layout-file layout #:grub grub)))
(keymap (and keymap*
- (if btrfs-subvolume-file-name
- #~(string-append #$btrfs-subvolume-file-name
+ (if store-directory-prefix
+ #~(string-append #$store-directory-prefix
#$keymap*)
keymap*))))
#~(when #$keymap