mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2025-01-19 14:07:01 +01:00
system: Pass boot-parameters to (gnu system grub).
* gnu/system.scm (operating-system-bootcfg): Pass boot-parameters. * gnu/system/grub.scm (boot-parameters->menu-entry): New variable. (grub-configuration-file): Use boot-parameters->menu-entry. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
This commit is contained in:
parent
0ab1e8ae88
commit
2e58e05bb6
2 changed files with 19 additions and 7 deletions
|
@ -742,16 +742,17 @@ (define* (operating-system-bootcfg os #:optional (old-entries '()))
|
|||
(root-device -> (if (eq? 'uuid (file-system-title root-fs))
|
||||
(uuid->string (file-system-device root-fs))
|
||||
(file-system-device root-fs)))
|
||||
(entries -> (list (menu-entry
|
||||
(entries -> (list (boot-parameters
|
||||
(label label)
|
||||
(root-device root-device)
|
||||
|
||||
;; The device where the kernel and initrd live.
|
||||
(device (fs->boot-device store-fs))
|
||||
(device-mount-point
|
||||
(store-device (fs->boot-device store-fs))
|
||||
(store-mount-point
|
||||
(file-system-mount-point store-fs))
|
||||
|
||||
(linux kernel)
|
||||
(linux-arguments
|
||||
(kernel kernel)
|
||||
(kernel-arguments
|
||||
(cons* (string-append "--root=" root-device)
|
||||
#~(string-append "--system=" #$system)
|
||||
#~(string-append "--load=" #$system
|
||||
|
|
|
@ -26,6 +26,7 @@ (define-module (gnu system grub)
|
|||
#:use-module (guix gexp)
|
||||
#:use-module (guix download)
|
||||
#:use-module (gnu artwork)
|
||||
#:use-module (gnu system)
|
||||
#:use-module (gnu system file-systems)
|
||||
#:autoload (gnu packages bootloaders) (grub)
|
||||
#:autoload (gnu packages compression) (gzip)
|
||||
|
@ -266,6 +267,15 @@ (define (grub-root-search device file)
|
|||
(#f
|
||||
#~(format #f "search --file --set ~a" #$file)))))
|
||||
|
||||
(define (boot-parameters->menu-entry conf)
|
||||
(menu-entry
|
||||
(label (boot-parameters-label conf))
|
||||
(device (boot-parameters-store-device conf))
|
||||
(device-mount-point (boot-parameters-store-mount-point conf))
|
||||
(linux (boot-parameters-kernel conf))
|
||||
(linux-arguments (boot-parameters-kernel-arguments conf))
|
||||
(initrd (boot-parameters-initrd conf))))
|
||||
|
||||
(define* (grub-configuration-file config entries
|
||||
#:key
|
||||
(system (%current-system))
|
||||
|
@ -275,7 +285,8 @@ (define* (grub-configuration-file config entries
|
|||
<file-system> object. OLD-ENTRIES is taken to be a list of menu entries
|
||||
corresponding to old generations of the system."
|
||||
(define all-entries
|
||||
(append entries (grub-configuration-menu-entries config)))
|
||||
(append (map boot-parameters->menu-entry entries)
|
||||
(grub-configuration-menu-entries config)))
|
||||
|
||||
(define entry->gexp
|
||||
(match-lambda
|
||||
|
@ -321,7 +332,7 @@ (define builder
|
|||
#$@(if (pair? old-entries)
|
||||
#~((format port "
|
||||
submenu \"GNU system, old configurations...\" {~%")
|
||||
#$@(map entry->gexp old-entries)
|
||||
#$@(map entry->gexp (map boot-parameters->menu-entry old-entries))
|
||||
(format port "}~%"))
|
||||
#~()))))
|
||||
|
||||
|
|
Loading…
Reference in a new issue