aports/main/mdadm/mdadm-raid.initd
2011-05-23 13:13:04 +00:00

49 lines
996 B
Plaintext

#!/sbin/runscript
# script to start raid devices described in /etc/mdadm.conf.
depend() {
before checkfs fsck
after modules
}
array_devices() {
awk '/^ARRAY/ {print $2}' /etc/mdadm.conf
}
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 $(array_devices); 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 $(array_devices); do
is_mounted_as $i / && continue
tostop="$tostop $i"
done
mdadm --stop --quiet $tostop
eend $?
}