<para>ignore mdadm.conf included in initramfs</para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term>
+ <envar>rd.md.waitclean</envar>=1
+ </term>
+ <listitem>
+ <para>wait for any resync, recovery, or reshape activity to finish before continuing</para>
+ </listitem>
+ </varlistentry>
<varlistentry>
<term>
<envar>rd.md.uuid=<replaceable><md raid uuid></replaceable></envar>
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
-type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
+if getargbool 0 rd.md.waitclean; then
+ type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
+ containers=""
+ for md in /dev/md[0-9_]*; do
+ [ -b "$md" ] || continue
+ udevinfo="$(udevadm info --query=env --name=$md)"
+ strstr "$udevinfo" "DEVTYPE=partition" && continue
+ if strstr "$udevinfo" "MD_LEVEL=container"; then
+ containers="$containers $md"
+ continue
+ fi
+ info "Waiting for $md to become clean"
+ mdadm -W "$md" >/dev/null 2>&1
+ done
-containers=""
-for md in /dev/md[0-9_]*; do
- [ -b "$md" ] || continue
- udevinfo="$(udevadm info --query=env --name=$md)"
- strstr "$udevinfo" "DEVTYPE=partition" && continue
- if strstr "$udevinfo" "MD_LEVEL=container"; then
- containers="$containers $md"
- continue
- fi
- info "Waiting for $md to become clean"
- mdadm -W "$md" >/dev/null 2>&1
-done
+ for md in $containers; do
+ info "Waiting for $md to become clean"
+ mdadm -W "$md" >/dev/null 2>&1
+ done
-for md in $containers; do
- info "Waiting for $md to become clean"
- mdadm -W "$md" >/dev/null 2>&1
-done
-
-unset containers udevinfo
+ unset containers udevinfo
+fi