system: Introduce read-boot-parameters-file.
* gnu/system.scm (read-boot-parameters): Remove export. (read-boot-parameters-file): New variable. Export it. * guix/scripts/system.scm (profile-boot-parameters): Use read-boot-parameters-file. (profile-grub-entries): Use read-boot-parameters-file. (reinstall-grub): Use read-boot-parameters-file. (display-system-generation): Use read-boot-parameters-file.master
parent
33f0aa8815
commit
9530e73b49
|
@ -109,7 +109,7 @@
|
||||||
boot-parameters-kernel
|
boot-parameters-kernel
|
||||||
boot-parameters-kernel-arguments
|
boot-parameters-kernel-arguments
|
||||||
boot-parameters-initrd
|
boot-parameters-initrd
|
||||||
read-boot-parameters
|
read-boot-parameters-file
|
||||||
|
|
||||||
local-host-aliases
|
local-host-aliases
|
||||||
%setuid-programs
|
%setuid-programs
|
||||||
|
@ -907,4 +907,24 @@ being stored into the \"parameters\" file)."
|
||||||
system)
|
system)
|
||||||
#f)))
|
#f)))
|
||||||
|
|
||||||
|
(define (read-boot-parameters-file system)
|
||||||
|
"Read boot parameters from SYSTEM's (system or generation) \"parameters\"
|
||||||
|
file and returns the corresponding <boot-parameters> object or #f if the
|
||||||
|
format is unrecognized.
|
||||||
|
The object has its kernel-arguments extended in order to make it bootable."
|
||||||
|
(let* ((file (string-append system "/parameters"))
|
||||||
|
(params (call-with-input-file file read-boot-parameters))
|
||||||
|
(root (boot-parameters-root-device params))
|
||||||
|
(root-device (if (bytevector? root)
|
||||||
|
(uuid->string root)
|
||||||
|
root))
|
||||||
|
(kernel-arguments (boot-parameters-kernel-arguments params)))
|
||||||
|
(if params
|
||||||
|
(boot-parameters
|
||||||
|
(inherit params)
|
||||||
|
(kernel-arguments (bootable-kernel-arguments kernel-arguments
|
||||||
|
system
|
||||||
|
root-device)))
|
||||||
|
#f)))
|
||||||
|
|
||||||
;;; system.scm ends here
|
;;; system.scm ends here
|
||||||
|
|
|
@ -369,9 +369,7 @@ it atomically, and then run OS's activation script."
|
||||||
NUMBERS, which is a list of generation numbers."
|
NUMBERS, which is a list of generation numbers."
|
||||||
(define (system->boot-parameters system number time)
|
(define (system->boot-parameters system number time)
|
||||||
(unless-file-not-found
|
(unless-file-not-found
|
||||||
(let* ((file (string-append system "/parameters"))
|
(let* ((params (read-boot-parameters-file system)))
|
||||||
(params (call-with-input-file file
|
|
||||||
read-boot-parameters)))
|
|
||||||
params)))
|
params)))
|
||||||
(let* ((systems (map (cut generation-file-name profile <>)
|
(let* ((systems (map (cut generation-file-name profile <>)
|
||||||
numbers))
|
numbers))
|
||||||
|
@ -387,9 +385,7 @@ NUMBERS, which is a list of generation numbers."
|
||||||
NUMBERS, which is a list of generation numbers."
|
NUMBERS, which is a list of generation numbers."
|
||||||
(define (system->grub-entry system number time)
|
(define (system->grub-entry system number time)
|
||||||
(unless-file-not-found
|
(unless-file-not-found
|
||||||
(let* ((file (string-append system "/parameters"))
|
(let* ((params (read-boot-parameters-file system))
|
||||||
(params (call-with-input-file file
|
|
||||||
read-boot-parameters))
|
|
||||||
(label (boot-parameters-label params))
|
(label (boot-parameters-label params))
|
||||||
(root (boot-parameters-root-device params))
|
(root (boot-parameters-root-device params))
|
||||||
(root-device (if (bytevector? root)
|
(root-device (if (bytevector? root)
|
||||||
|
@ -447,9 +443,8 @@ generation as its default entry. STORE is an open connection to the store."
|
||||||
"Re-install grub for existing system profile generation NUMBER. STORE is an
|
"Re-install grub for existing system profile generation NUMBER. STORE is an
|
||||||
open connection to the store."
|
open connection to the store."
|
||||||
(let* ((generation (generation-file-name %system-profile number))
|
(let* ((generation (generation-file-name %system-profile number))
|
||||||
(file (string-append generation "/parameters"))
|
|
||||||
(params (unless-file-not-found
|
(params (unless-file-not-found
|
||||||
(call-with-input-file file read-boot-parameters)))
|
(read-boot-parameters-file generation)))
|
||||||
(root-device (boot-parameters-root-device params))
|
(root-device (boot-parameters-root-device params))
|
||||||
;; We don't currently keep track of past menu entries' details. The
|
;; We don't currently keep track of past menu entries' details. The
|
||||||
;; default values will allow the system to boot, even if they differ
|
;; default values will allow the system to boot, even if they differ
|
||||||
|
@ -533,8 +528,7 @@ list of services."
|
||||||
"Display a summary of system generation NUMBER in a human-readable format."
|
"Display a summary of system generation NUMBER in a human-readable format."
|
||||||
(unless (zero? number)
|
(unless (zero? number)
|
||||||
(let* ((generation (generation-file-name profile number))
|
(let* ((generation (generation-file-name profile number))
|
||||||
(param-file (string-append generation "/parameters"))
|
(params (read-boot-parameters-file generation))
|
||||||
(params (call-with-input-file param-file read-boot-parameters))
|
|
||||||
(label (boot-parameters-label params))
|
(label (boot-parameters-label params))
|
||||||
(root (boot-parameters-root-device params))
|
(root (boot-parameters-root-device params))
|
||||||
(root-device (if (bytevector? root)
|
(root-device (if (bytevector? root)
|
||||||
|
|
Reference in New Issue