#!/sbin/runscript # script to start raid devices described in /etc/mdadm.conf. depend() { before checkfs fsck after modules } start() { [ -f /etc/mdadm.conf ] || return 0 # start all devices that are not already started [ -f /proc/mdstat ] || modprobe -k md > /dev/null 2>&1 local tostart= for i in $(awk '{print $2}' /etc/mdadm.conf); do [ -b "$i" ] && continue tostart="$tostart $i" done [ -z "$tostart" ] && return 0 ebegin "Starting RAID devices" mdadm --assemble --scan --quiet $tostart eend $? } is_mounted_as() { local mnt for mnt in $(awk "\$1 == \"$1\" {print \$2}" /proc/mounts); do [ "$mnt" = "$2" ] && return 0 done return 1 } stop() { # stop all raid devices except anything mounted as / [ -f /etc/mdadm.conf ] || return 0 ebegin "Stopping RAID devices" local tostop= for i in $(awk '{print $2}' /etc/mdadm.conf); do is_mounted_as $i / && continue tostop="$tostop $i" done mdadm --stop --quiet $tostop eend $? }