]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
mdraid_start.sh: fixed raid activation
authorHarald Hoyer <harald@redhat.com>
Mon, 7 Sep 2009 12:11:18 +0000 (14:11 +0200)
committerHarald Hoyer <harald@redhat.com>
Mon, 7 Sep 2009 14:18:12 +0000 (16:18 +0200)
modules.d/90mdraid/65-md-incremental-imsm.rules
modules.d/90mdraid/install
modules.d/90mdraid/mdcontainer_start.sh [new file with mode: 0755]
modules.d/90mdraid/mdraid_start.sh
modules.d/95debug/install

index 8385fb44c5252ed67305d1b6252e953f1b2cef1c..5104fc51b19fff4898c2c55d2a0b61c37feb0033 100644 (file)
@@ -23,3 +23,9 @@ RUN+="/sbin/mdadm -I --no-degraded $env{DEVNAME}"
 RUN+="/bin/sh -c '>/tmp/.mdraid_start-%k; /bin/ln -s /sbin/mdraid_start /initqueue/mdraid_start.sh'"
 
 LABEL="md_inc_end"
+
+ACTION=="add|change", \
+       ENV{DEVTYPE}!="partition", \
+       ENV{MD_LEVEL}=="container", \
+       TEST!="/tmp/.mdcontainer_start-%k", \
+       RUN+="/bin/sh -c '>/tmp/.mdcontainer_start-%k; initqueue /sbin/mdcontainer_start $env{DEVNAME}'"
index 71c313b96bfbe2834f586a1440dfe4ce8882155a..c2de3bbae68694f07828dee3c43e26f95280b0d2 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-dracut_install mdadm partx grep
+dracut_install mdadm partx 
 
 
 # XXX: mdmon really needs to run as non-root?
@@ -32,6 +32,7 @@ if [ -x  /sbin/mdmon ] ; then
 fi 
 
 inst "$moddir/mdraid_start.sh" /sbin/mdraid_start
+inst "$moddir/mdcontainer_start.sh" /sbin/mdcontainer_start
 inst_hook pre-trigger 30 "$moddir/parse-md.sh"
 inst_hook pre-pivot 30 "$moddir/mdraid-cleanup.sh"
 inst_hook pre-pivot 31 "$moddir/mdraid-cleanup.sh"
diff --git a/modules.d/90mdraid/mdcontainer_start.sh b/modules.d/90mdraid/mdcontainer_start.sh
new file mode 100755 (executable)
index 0000000..403b62b
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh
+. /lib/dracut-lib.sh
+
+if $UDEV_QUEUE_EMPTY >/dev/null 2>&1; then
+    # run mdadm if udev has settled
+    md=$1
+    # and activate any containers
+    mdadm -IR $md 2>&1 | vinfo
+fi
index a6868bda0dfaf964aa1815ba0f98c633d1279670..55e7d9c643fa54c1d7e9eb70e0f39a9b87d8c299 100755 (executable)
@@ -4,20 +4,6 @@ if $UDEV_QUEUE_EMPTY >/dev/null 2>&1; then
     [ -h "$job" ] && rm -f "$job"
     # run mdadm if udev has settled
     info "Assembling MD RAID arrays"
-
-    # and activate any containers
-    for md in /dev/md?*; do
-        case $md in
-           /dev/md*p*) ;;
-           *)
-                if mdadm --query --test --detail $md 2>&1|grep -q 'does not appear to be active'; then
-                   info "Starting MD RAID array $md"
-                    mdadm -R $md 2>&1 | vinfo
-                    if mdadm --query --test --detail $md 2>&1|grep -q 'does not appear to be active'; then
-                        mdadm -IR $md 2>&1 | vinfo
-                    fi
-                    udevsettle
-               fi
-        esac
-    done
+    mdadm -IRs 2>&1 | vinfo
+    udevsettle 
 fi
index 15971873a60d9192fb11fe89bfe75a1db27b372c..1c7afaf0a4da0babfe6978e5f6d0f9723fce3efb 100755 (executable)
@@ -1,3 +1,3 @@
 #!/bin/bash
 dracut_install -o ps grep more cat rm strace free showmount 
-dracut_install -o ping netstat rpcinfo
+dracut_install -o ping netstat rpcinfo vi