summaryrefslogtreecommitdiff
path: root/scripts/local-top/mdraid
diff options
context:
space:
mode:
authormaximilian attems <maks@debian.org>2006-07-29 14:49:39 +0200
committermaximilian attems <maks@debian.org>2006-07-29 14:49:39 +0200
commit5d46a04527bd3023e4f34cc99029ffc281f42110 (patch)
treeb9104286af5a3ca6778cc836581b86ab5a3573fc /scripts/local-top/mdraid
parent8761821795732a9755d673e92fb45ac9202270df (diff)
downloadinitramfs-tools-5d46a04527bd3023e4f34cc99029ffc281f42110.tar.gz
initramfs-tools-5d46a04527bd3023e4f34cc99029ffc281f42110.zip
- take care of partial mdadm/lvm Sarge upgrades
this compat stuff can go once Etch is released - framebuffer stuff for usplash - don't leave modules file behind - thanks piuparts!
Diffstat (limited to 'scripts/local-top/mdraid')
-rwxr-xr-xscripts/local-top/mdraid41
1 files changed, 41 insertions, 0 deletions
diff --git a/scripts/local-top/mdraid b/scripts/local-top/mdraid
new file mode 100755
index 0000000..2cf3b5d
--- /dev/null
+++ b/scripts/local-top/mdraid
@@ -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
+mkdir /dev/md
+mdadm --assemble --config=/etc/mdadm.conf --scan --run --auto=yes