summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripts/local-top/lvm8
-rw-r--r--scripts/local-top/md11
2 files changed, 16 insertions, 3 deletions
diff --git a/scripts/local-top/lvm b/scripts/local-top/lvm
index 8fcb234..4f199de 100644
--- a/scripts/local-top/lvm
+++ b/scripts/local-top/lvm
@@ -15,4 +15,10 @@ prereqs)
;;
esac
-vgchange -ay
+vg=$(echo ${ROOT} | sed -e 's#/dev/mapper/\(.*\)-.*#\1#')
+
+[ x${vg} != x ] || return
+
+modprobe -q dm-mod
+
+vgchange -ay ${vg}
diff --git a/scripts/local-top/md b/scripts/local-top/md
index 062852f..48c3ce6 100644
--- a/scripts/local-top/md
+++ b/scripts/local-top/md
@@ -15,7 +15,14 @@ prereqs)
;;
esac
-# FIXME detect this!
-modprobe raid1
+unset raidlvl
+
+# Detect raid level
+for x in /dev/hd* /dev/sd*; do
+ raidlvl=$(mdadm --examine ${x} | grep "Level" | sed -e 's/.*Raid Level : \(.*\)/\1/')
+ modprobe -q ${raidlvl}
+done
+
+[ x${raidlvl} != x ] || return
/sbin/mdrun /dev