]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
use udev rules to autoassemble a md raid and added mdmon pre-pivot
authorHarald Hoyer <harald@redhat.com>
Fri, 6 Mar 2009 11:32:54 +0000 (12:32 +0100)
committerHarald Hoyer <harald@redhat.com>
Fri, 6 Mar 2009 11:43:13 +0000 (12:43 +0100)
modules.d/90mdraid/70-mdadm.rules [new file with mode: 0644]
modules.d/90mdraid/install
modules.d/90mdraid/mdmon-pre-pivot.sh [new file with mode: 0644]
modules.d/90mdraid/mdraid.sh [deleted file]

diff --git a/modules.d/90mdraid/70-mdadm.rules b/modules.d/90mdraid/70-mdadm.rules
new file mode 100644 (file)
index 0000000..bd11633
--- /dev/null
@@ -0,0 +1,6 @@
+# This file causes block devices with Linux RAID (mdadm) signatures to
+# automatically cause mdadm to be run.
+# See udev(8) for syntax
+
+SUBSYSTEM=="block", ACTION=="add|change", ENV{ID_FS_TYPE}=="linux_raid*", \
+       RUN+="/sbin/mdadm -I --auto=yes $root/%k"
index f68cee685b82fd0759582f17c9ec1983a551771e..41982f9b2f30fabccbd4be4a0e7a1368ecb2092e 100755 (executable)
@@ -1,4 +1,8 @@
 #!/bin/bash
 dracut_install mdadm
-inst_hook pre-mount 10 "$moddir/mdraid.sh"
+[ -x  /sbin/mdmon ] && dracut_install mdmon
+inst_rules "$moddir/70-mdadm.rules"
+[ -f /etc/mdadm/mdadm.conf ] && inst /etc/mdadm/mdadm.conf "$initdir" /etc/mdadm.conf
+[ -f /etc/mdadm.conf ] && inst /etc/mdadm.conf "$initdir"
+inst_hook pre-pivot 30 "$moddir/mdmon-pre-pivot.sh"
 
diff --git a/modules.d/90mdraid/mdmon-pre-pivot.sh b/modules.d/90mdraid/mdmon-pre-pivot.sh
new file mode 100644 (file)
index 0000000..b1f379f
--- /dev/null
@@ -0,0 +1,3 @@
+# switch any mdmon instances to newroot
+[ -f /etc/mdadm.conf ] && /sbin/mdmon /proc/mdstat $NEWROOT
+
diff --git a/modules.d/90mdraid/mdraid.sh b/modules.d/90mdraid/mdraid.sh
deleted file mode 100644 (file)
index 79f60c7..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-mdadm   --assemble             \
-       --homehost=localhost    \
-       --auto-update-homehost  \
-       --scan 
-
-udevadm settle --timeout=30 
-