]> TLD Linux GIT Repositories - packages/rc-scripts.git/blobdiff - rc-scripts-raid_lvm.patch
- always try to assemble RAID arrays to get them all running
[packages/rc-scripts.git] / rc-scripts-raid_lvm.patch
similarity index 68%
rename from rc-scripts-raid.patch
rename to rc-scripts-raid_lvm.patch
index 72bf0d976a38ffa0c27fbcf57fe7a4dfa10ac355..f8691c06f25d05c3fe06c7926e472b90b3951090 100644 (file)
@@ -1,11 +1,16 @@
 diff -ur rc-scripts-0.4.12.orig/rc.d/rc.sysinit rc-scripts-0.4.12/rc.d/rc.sysinit
---- rc-scripts-0.4.12.orig/rc.d/rc.sysinit     2014-06-19 20:04:44.000000000 +0000
-+++ rc-scripts-0.4.12/rc.d/rc.sysinit  2014-07-25 16:08:09.735000000 +0000
-@@ -305,61 +305,18 @@
+--- rc-scripts-0.4.12.orig/rc.d/rc.sysinit     2014-08-05 14:20:11.411000000 +0000
++++ rc-scripts-0.4.12/rc.d/rc.sysinit  2014-08-05 15:22:35.445000000 +0000
+@@ -301,63 +301,26 @@
+       fi
+ }
  
- # mdadm - manage MD devices aka Linux Software RAID
+-# mdadm - manage MD devices aka Linux Software RAID
++# Init software RAID arrays
  init_mdadm() {
 -      if [ ! -x /sbin/mdadm -o ! -f /etc/mdadm.conf ]; then
++      local output
++
 +      if [ ! -x /sbin/mdadm ]; then
                return
        fi
@@ -19,9 +24,7 @@ diff -ur rc-scripts-0.4.12.orig/rc.d/rc.sysinit rc-scripts-0.4.12/rc.d/rc.sysini
 -      # assume we have md if at least one ARRAY line is present
 -      if grep -qE "^([[:blank:]]|)ARRAY[[:blank:]]" /etc/mdadm.conf; then
 -              have_md=1
-+      if ! grep -q -E "^md.*active" /proc/mdstat; then
-+              run_cmd "Starting up RAID devices" /sbin/mdadm --assemble --scan
-       fi
+-      fi
 -      # configured to do auto scanning
 -      if [ $have_md = 0 ] && grep -qE "^([[:blank:]]|)DEVICE[[:blank:]]partitions" /etc/mdadm.conf; then
 -              have_md=1
@@ -32,7 +35,7 @@ diff -ur rc-scripts-0.4.12.orig/rc.d/rc.sysinit rc-scripts-0.4.12/rc.d/rc.sysini
 -              return
 -      fi
 -
--      show "Starting up RAID devices"; busy
+       show "Starting up RAID devices"; busy
 -      /sbin/mdadm --assemble --scan --auto=yes
 -      rc=$?
 -      if [ "$rc" -eq 0 -o "$rc" -eq 2 ]; then
@@ -52,7 +55,9 @@ diff -ur rc-scripts-0.4.12.orig/rc.d/rc.sysinit rc-scripts-0.4.12/rc.d/rc.sysini
 -              PS1="$(nls '(RAID Repair)# ')"; export PS1
 -              repair_shell "$(nls '*** An error occurred during the RAID startup.')"
 -      fi
--
++      output=$(/sbin/mdadm --assemble --scan 2>&1)
++      ok
 -      # LVM on RAID (keep in sync with LVM init)
 -      if [ "$golvm" -eq "1" ]; then
 -              if [ -x /sbin/vgscan -a -x /sbin/vgchange ]; then
@@ -60,13 +65,27 @@ diff -ur rc-scripts-0.4.12.orig/rc.d/rc.sysinit rc-scripts-0.4.12/rc.d/rc.sysini
 -                      run_cmd "Activating LVM volume groups (on RAID)" /sbin/vgchange -a y $lvmsysinit
 -                      [ "$lvmversion" = "2" ] && /sbin/vgmknodes
 -              fi
--      fi
++      if [ -n "$output" ]; then
++              echo "$output"
+       fi
 -      show "Starting up RAID devices"; ok
 -      return $rc
  }
  
  # Init LVM
-@@ -832,7 +789,10 @@
+@@ -390,8 +353,10 @@
+       run_cmd "Scanning for LVM volume groups" /sbin/vgscan $lvmignorelocking
+       run_cmd "Activating LVM volume groups" /sbin/vgchange -a y $lvmsysinit
++
+       if [ "$lvmversion" = "2" ]; then
+-              /sbin/vgmknodes $lvmignorelocking
++              # silently refresh LV /dev nodes (just for case)
++              /sbin/vgmknodes $lvmignorelocking 1>/dev/null 2>&1
+               # display VG statistics
+               /sbin/vgdisplay -s $lvmignorelocking
+       fi
+@@ -830,7 +795,10 @@
                fi
        fi
  
@@ -78,7 +97,7 @@ diff -ur rc-scripts-0.4.12.orig/rc.d/rc.sysinit rc-scripts-0.4.12/rc.d/rc.sysini
        if ! is_no "$LVM2"; then
                init_lvm
        fi
-@@ -844,10 +804,6 @@
+@@ -842,10 +810,6 @@
                [ $delay_cryptsetup = 0 ] && ok || fail
        fi