summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/system/mapped-devices.scm8
1 files changed, 5 insertions, 3 deletions
diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm
index 2487638c52..e44f2693a7 100644
--- a/gnu/system/mapped-devices.scm
+++ b/gnu/system/mapped-devices.scm
@@ -24,7 +24,7 @@
   #:use-module (gnu services)
   #:use-module (gnu services shepherd)
   #:autoload   (gnu packages cryptsetup) (cryptsetup)
-  #:autoload   (gnu packages linux) (mdadm)
+  #:autoload   (gnu packages linux) (mdadm-static)
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 match)
   #:export (mapped-device
@@ -150,12 +150,14 @@ TARGET (e.g., \"/dev/md0\"), using 'mdadm'."
           (sleep 1)
           (loop (+ 1 attempts))))
 
-      (zero? (apply system* (string-append #$mdadm "/sbin/mdadm")
+      ;; Use 'mdadm-static' rather than 'mdadm' to avoid pulling its whole
+      ;; closure (80 MiB) in the initrd when a RAID device is needed for boot.
+      (zero? (apply system* #$(file-append mdadm-static "/sbin/mdadm")
                     "--assemble" #$target sources))))
 
 (define (close-raid-device sources target)
   "Return a gexp that stops the RAID device TARGET."
-  #~(zero? (system* (string-append #$mdadm "/sbin/mdadm")
+  #~(zero? (system* #$(file-append mdadm-static "/sbin/mdadm")
                     "--stop" #$target)))
 
 (define raid-device-mapping