diff options
author | Ludovic Courtès <ludo@gnu.org> | 2014-06-25 22:48:25 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2014-06-25 23:53:27 +0200 |
commit | 64e40dbb692d537e67d1dccd727dd5c36e39a10e (patch) | |
tree | eebad4f29a0723908826d8307b670b2db714acff /gnu | |
parent | 2d23e6f0515bc2e3a8a388cbe881ac372b162f9e (diff) | |
download | gnu-guix-64e40dbb692d537e67d1dccd727dd5c36e39a10e.tar gnu-guix-64e40dbb692d537e67d1dccd727dd5c36e39a10e.tar.gz |
system: Store boot parameters in the system derivation.
* gnu/system.scm (operating-system-parameters-file): New procedure.
(operating-system-derivation): Use it to produce a 'parameters' files.
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/system.scm | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/gnu/system.scm b/gnu/system.scm index e1337da749..12d9f5fe02 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -511,6 +511,20 @@ we're running in the final root." (initrd #~(string-append #$system "/initrd")))))) (grub-configuration-file (operating-system-bootloader os) entries))) +(define (operating-system-parameters-file os) + "Return a file that describes the boot parameters of OS. The primary use of +this file is the reconstruction of GRUB menu entries for old configurations." + (mlet %store-monad ((initrd (operating-system-initrd-file os)) + (root -> (operating-system-root-file-system os)) + (label -> (kernel->grub-label + (operating-system-kernel os)))) + (gexp->file "parameters" + #~(boot-parameters (version 0) + (label #$label) + (root-device #$(file-system-device root)) + (kernel #$(operating-system-kernel os)) + (initrd #$initrd))))) + (define (operating-system-derivation os) "Return a derivation that builds OS." (mlet* %store-monad @@ -518,10 +532,12 @@ we're running in the final root." (etc (operating-system-etc-directory os)) (boot (operating-system-boot-script os)) (kernel -> (operating-system-kernel os)) - (initrd (operating-system-initrd-file os))) + (initrd (operating-system-initrd-file os)) + (params (operating-system-parameters-file os))) (file-union "system" `(("boot" ,#~#$boot) ("kernel" ,#~#$kernel) + ("parameters" ,#~#$params) ("initrd" ,initrd) ("profile" ,#~#$profile) ("etc" ,#~#$etc))))) |