#
LABEL="md_incremental"
-RUN+="/sbin/mdadm -I $env{DEVNAME}"
+RUN+="/sbin/mdadm $env{rd_MD_OFFROOT} -I $env{DEVNAME}"
LABEL="md_end"
_do_md_shutdown() {
local ret
local final=$1
+ local _offroot=$(strstr "$(mdadm --help-options 2>&1)" offroot && echo --offroot)
info "Disassembling mdraid devices."
- mdadm -v --stop --scan
+ mdadm $_offroot -v --stop --scan
ret=$?
if [ "x$final" != "x" ]; then
info "cat /proc/mdstat"
type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
+_offroot=$(strstr "$(mdadm --help-options 2>&1)" offroot && echo --offroot)
containers=""
for md in /dev/md[0-9_]*; do
[ -b "$md" ] || continue
containers="$containers $md"
continue
fi
- mdadm -S "$md" >/dev/null 2>&1 || need_shutdown
+ mdadm $_offroot -S "$md" >/dev/null 2>&1 || need_shutdown
done
for md in $containers; do
- mdadm -S "$md" >/dev/null 2>&1 || need_shutdown
+ mdadm $_offroot -S "$md" >/dev/null 2>&1 || need_shutdown
done
-unset containers udevinfo
+unset containers udevinfo _offroot
# ex: ts=8 sw=4 sts=4 et filetype=sh
if getargbool 0 rd.md.waitclean; then
+ _offroot=$(strstr "$(mdadm --help-options 2>&1)" offroot && echo --offroot)
type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
containers=""
for md in /dev/md[0-9_]*; do
continue
fi
info "Waiting for $md to become clean"
- mdadm -W "$md" >/dev/null 2>&1
+ mdadm $_offroot -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
+ mdadm $_offroot -W "$md" >/dev/null 2>&1
done
- unset containers udevinfo
+ unset containers udevinfo _offroot
fi
local _udevinfo
local _path_s
local _path_d
+ local _offroot
+ _offroot=$(strstr "$(mdadm --help-options 2>&1)" offroot && echo --offroot)
# try to force-run anything not running yet
for md in /dev/md[0-9_]*; do
[ -b "$md" ] || continue
# inactive ?
[ "$(cat "$_path_s")" != "inactive" ] && continue
- mdadm -R "$md" 2>&1 | vinfo
+ mdadm $_offroot -R "$md" 2>&1 | vinfo
# still inactive ?
[ "$(cat "$_path_s")" = "inactive" ] && continue
[ ! -r "$_path_d" ] && continue
# workaround for mdmon bug
- [ "$(cat "$_path_d")" -gt "0" ] && mdmon --takeover "$md"
+ [ "$(cat "$_path_d")" -gt "0" ] && mdmon $_offroot --takeover "$md"
done
}
info "no MD RAID for SNIA ddf raids"
udevproperty rd_NO_MDDDF=1
fi
+
+strstr "$(mdadm --help-options 2>&1)" offroot && udevproperty rd_MD_OFFROOT=--offroot