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 @@ (define-module (gnu system mapped-devices) #: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 @@ (define (open-raid-device sources target) (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