M doc/guix.texi => doc/guix.texi +10 -9
@@ 3649,23 3649,24 @@ at boot time, you can define the @code{initrd} field of the operating
system declaration like this:
@example
-(initrd (cut base-initrd <>
- #:extra-modules '("my.ko" "modules.ko")))
+(initrd (lambda (file-systems . rest)
+ (apply base-initrd file-systems
+ #:extra-modules '("my.ko" "modules.ko")
+ rest)))
@end example
-@noindent
-Note that for the example above, the SRFI-26 module needs to be imported
-(@pxref{SRFI-26,,, guile, GNU Guile Reference Manual}).
-
-It also handles common use cases that involves using the system as a
-QEMU guest, or as a ``live'' system whose root file system is volatile.
+The @code{base-initrd} procedure also handles common use cases that
+involves using the system as a QEMU guest, or as a ``live'' system whose
+root file system is volatile.
@deffn {Monadic Procedure} base-initrd @var{file-systems} @
[#:qemu-networking? #f] [#:virtio? #f] [#:volatile-root? #f] @
- [#:extra-modules '()]
+ [#:extra-modules '()] [#:mapped-devices '()]
Return a monadic derivation that builds a generic 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 @code{--root}.
+@var{mapped-devices} is a list of device mappings to realize before
+@var{file-systems} are mounted (@pxref{Mapped Devices}).
When @var{qemu-networking?} is true, set up networking with the standard QEMU
parameters. When @var{virtio?} is true, load additional modules so the initrd can
M gnu/system/vm.scm => gnu/system/vm.scm +16 -10
@@ 289,9 289,11 @@ to USB sticks meant to be read-only."
;; Since this is meant to be used on real hardware, don't
;; install QEMU networking or anything like that, but make sure
;; USB mass storage devices are available.
- (initrd (cut base-initrd <>
- #:volatile-root? #t
- #:extra-modules '("usb-storage.ko")))
+ (initrd (lambda (file-systems . rest)
+ (apply base-initrd file-systems
+ #:volatile-root? #t
+ #:extra-modules '("usb-storage.ko")
+ rest)))
;; Force our own root file system.
(file-systems (cons (file-system
@@ 333,9 335,11 @@ of the GNU system as described by OS."
(let ((os (operating-system (inherit os)
;; Use an initrd with the whole QEMU shebang.
- (initrd (cut base-initrd <>
- #:virtio? #t
- #:qemu-networking? #t))
+ (initrd (lambda (file-systems . rest)
+ (apply base-initrd file-systems
+ #:virtio? #t
+ #:qemu-networking? #t
+ rest)))
;; Force our own root file system.
(file-systems (cons (file-system
@@ 358,10 362,12 @@ of the GNU system as described by OS."
"Return an operating system based on OS suitable for use in a virtualized
environment with the store shared with the host."
(operating-system (inherit os)
- (initrd (cut base-initrd <>
- #:volatile-root? #t
- #:virtio? #t
- #:qemu-networking? #t))
+ (initrd (lambda (file-systems . rest)
+ (apply base-initrd file-systems
+ #:volatile-root? #t
+ #:virtio? #t
+ #:qemu-networking? #t
+ rest)))
(file-systems (cons* (file-system
(mount-point "/")
(device "/dev/vda1")