diff options
author | Hilton Chain <hako@ultrarare.space> | 2022-11-12 21:59:26 +0800 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-11-18 15:44:38 +0100 |
commit | a6da50d60a2cc3d0f218e38cbc197011b8151554 (patch) | |
tree | 969d671775c4f966a2b1d8bb72f29a910f883f54 | |
parent | 383b0f05904c5dac8238eeff96ca16873d9c5984 (diff) | |
download | guix-patches-a6da50d60a2cc3d0f218e38cbc197011b8151554.tar guix-patches-a6da50d60a2cc3d0f218e38cbc197011b8151554.tar.gz |
linux-initrd: raw-initrd: Add keyword argument #:pre-mount.
* gnu/system/linux-initrd.scm (raw-initrd): Add keyword argument #:pre-mount.
Document it.
* doc/guix.texi (initial RAM disk): Likewise.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r-- | doc/guix.texi | 8 | ||||
-rw-r--r-- | gnu/system/linux-initrd.scm | 7 |
2 files changed, 10 insertions, 5 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index ef3b8e127e..2d4f7d960e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -37869,15 +37869,17 @@ here is how to use it and customize it further. @cindex initrd @cindex initial RAM disk @deffn {Scheme Procedure} raw-initrd @var{file-systems} @ - [#:linux-modules '()] [#:mapped-devices '()] @ - [#:keyboard-layout #f] @ - [#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f] + [#:linux-modules '()] [#:pre-mount #t] [#:mapped-devices '()] @ + [#:keyboard-layout #f] [#:helper-packages '()] @ + [#:qemu-networking? #f] [#:volatile-root? #f] Return a derivation that builds a raw initrd. @var{file-systems} is a list of file systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via @option{root}. @var{linux-modules} is a list of kernel modules to be loaded at boot time. @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted (@pxref{Mapped Devices}). +@var{pre-mount} is a G-expression to evaluate before realizing +@var{mapped-devices}. @var{helper-packages} is a list of packages to be copied in the initrd. It may include @code{e2fsck/static} or other packages needed by the initrd to check diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index 4c4c78e444..58e95a1312 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -172,6 +172,7 @@ MODULES and taken from LINUX." #:key (linux linux-libre) (linux-modules '()) + (pre-mount #t) (mapped-devices '()) (keyboard-layout #f) (helper-packages '()) @@ -183,7 +184,8 @@ modules taken from LINUX. FILE-SYSTEMS is a list of file-systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via 'root'. LINUX-MODULES is a list of kernel modules to be loaded at boot time. MAPPED-DEVICES is a list of device -mappings to realize before FILE-SYSTEMS are mounted. +mappings to realize before FILE-SYSTEMS are mounted. PRE-MOUNT is a +G-expression to evaluate before realizing MAPPED-DEVICES. HELPER-PACKAGES is a list of packages to be copied in the initrd. It may include e2fsck/static or other packages needed by the initrd to check root partition. @@ -255,7 +257,8 @@ upon error." (map spec->file-system '#$(map file-system->spec file-systems)) #:pre-mount (lambda () - (and #$@device-mapping-commands + (and #$pre-mount + #$@device-mapping-commands #$@file-system-scan-commands)) #:linux-modules '#$linux-modules #:linux-module-directory '#$kodir |