summaryrefslogtreecommitdiff
path: root/scripts/local-top/mdrun
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/local-top/mdrun')
-rwxr-xr-xscripts/local-top/mdrun41
1 files changed, 41 insertions, 0 deletions
diff --git a/scripts/local-top/mdrun b/scripts/local-top/mdrun
new file mode 100755
index 0000000..1b6ca3e
--- /dev/null
+++ b/scripts/local-top/mdrun
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+PREREQ="udev_helper"
+
+prereqs()
+{
+ echo "$PREREQ"
+}
+
+case $1 in
+# get pre-requisites
+prereqs)
+ prereqs
+ exit 0
+ ;;
+esac
+
+if [ -e /scripts/local-top/mdadm ]; then
+ exit 0
+fi
+
+unset raidlvl
+gotraid=n
+
+# Detect raid level
+for x in /dev/hd[a-z][0-9]* /dev/sd[a-z][0-9]*; do
+ if [ ! -e ${x} ]; then
+ continue
+ fi
+ raidlvl=$(mdadm --examine ${x} 2>/dev/null | grep "Level" | sed -e 's/.*Raid Level : \(.*\)/\1/')
+ if [ "$raidlvl" ]; then
+ modprobe -q ${raidlvl} 2>/dev/null
+ gotraid=y
+ fi
+done
+
+[ "${gotraid}" = y ] || exit
+
+# Assemble all raid devices
+# FIXME: assemble root raid first due to initrd-tools compatibility
+/sbin/mdrun /dev