]> git.pld-linux.org Git - projects/rc-scripts.git/commitdiff
mdadm: accept "DEVICE partitions" as indication to start mdadm
authorElan Ruusamäe <glen@delfi.ee>
Fri, 17 Jan 2014 23:09:19 +0000 (01:09 +0200)
committerElan Ruusamäe <glen@delfi.ee>
Fri, 17 Jan 2014 23:09:19 +0000 (01:09 +0200)
rc.d/rc.sysinit

index 27b34778ae52f127adf77415b6a1befa390c75be..0b9d5c728f5f012226ffea4898d6798df93c0f7d 100755 (executable)
@@ -262,32 +262,42 @@ check_root_fs() {
        fi
 }
 
-# Add raid devices
+# mdadm - manage MD devices aka Linux Software RAID
 init_mdadm() {
        if [ ! -x /sbin/mdadm -o ! -f /etc/mdadm.conf ]; then
                return
        fi
 
        modprobe -s md
-       local rc=0
+       local rc=0 golvm=0 have_md=0
        if [ ! -f /proc/mdstat ]; then
                return
        fi
 
-       local golvm=0
+       # assume we have md if at least one ARRAY line is present
        if grep -qE "^([[:blank:]]|)ARRAY[[:blank:]]" /etc/mdadm.conf; then
-               show "Starting up RAID devices"; busy
-               /sbin/mdadm --assemble --scan --auto=yes
-               rc=$?
-               if [ "$rc" -eq 0 -o "$rc" -eq 2 ]; then
-                       # rc is used later too, so set sane value
-                       rc=0
-                       deltext; ok
-                       golvm=1
-               else
-                       deltext; fail
-               fi
+               have_md=1
+       fi
+       # configured to do auto scanning
+       if [ $have_md = 0 ] && grep -qE "^([[:blank:]]|)DEVICE[[:blank:]]partitions" /etc/mdadm.conf; then
+               have_md=1
+       fi
 
+       # none found
+       if [ $have_md = 0 ]; then
+               return
+       fi
+
+       show "Starting up RAID devices"; busy
+       /sbin/mdadm --assemble --scan --auto=yes
+       rc=$?
+       if [ "$rc" -eq 0 -o "$rc" -eq 2 ]; then
+               # rc is used later too, so set sane value
+               rc=0
+               deltext; ok
+               golvm=1
+       else
+               deltext; fail
        fi
 
        # A non-zero return means there were problems
This page took 0.247448 seconds and 4 git commands to generate.