]> TLD Linux GIT Repositories - packages/rc-scripts.git/blob - rc-scripts-raid_lvm.patch
f8691c06f25d05c3fe06c7926e472b90b3951090
[packages/rc-scripts.git] / rc-scripts-raid_lvm.patch
1 diff -ur rc-scripts-0.4.12.orig/rc.d/rc.sysinit rc-scripts-0.4.12/rc.d/rc.sysinit
2 --- rc-scripts-0.4.12.orig/rc.d/rc.sysinit      2014-08-05 14:20:11.411000000 +0000
3 +++ rc-scripts-0.4.12/rc.d/rc.sysinit   2014-08-05 15:22:35.445000000 +0000
4 @@ -301,63 +301,26 @@
5         fi
6  }
7  
8 -# mdadm - manage MD devices aka Linux Software RAID
9 +# Init software RAID arrays
10  init_mdadm() {
11 -       if [ ! -x /sbin/mdadm -o ! -f /etc/mdadm.conf ]; then
12 +       local output
13 +
14 +       if [ ! -x /sbin/mdadm ]; then
15                 return
16         fi
17  
18         modprobe -s md
19 -       local rc=0 golvm=0 have_md=0
20         if [ ! -f /proc/mdstat ]; then
21                 return
22         fi
23  
24 -       # assume we have md if at least one ARRAY line is present
25 -       if grep -qE "^([[:blank:]]|)ARRAY[[:blank:]]" /etc/mdadm.conf; then
26 -               have_md=1
27 -       fi
28 -       # configured to do auto scanning
29 -       if [ $have_md = 0 ] && grep -qE "^([[:blank:]]|)DEVICE[[:blank:]]partitions" /etc/mdadm.conf; then
30 -               have_md=1
31 -       fi
32 -
33 -       # none found
34 -       if [ $have_md = 0 ]; then
35 -               return
36 -       fi
37 -
38         show "Starting up RAID devices"; busy
39 -       /sbin/mdadm --assemble --scan --auto=yes
40 -       rc=$?
41 -       if [ "$rc" -eq 0 -o "$rc" -eq 2 ]; then
42 -               # rc is used later too, so set sane value
43 -               rc=0
44 -               deltext; ok
45 -               golvm=1
46 -       else
47 -               deltext; fail
48 -       fi
49 -
50 -       # A non-zero return means there were problems
51 -       if [ $rc -gt 0 ]; then
52 -               [ -e /proc/splash ] && echo "verbose" > /proc/splash
53 -               show "Starting up RAID devices"; fail
54 -
55 -               PS1="$(nls '(RAID Repair)# ')"; export PS1
56 -               repair_shell "$(nls '*** An error occurred during the RAID startup.')"
57 -       fi
58 +       output=$(/sbin/mdadm --assemble --scan 2>&1)
59 +       ok
60  
61 -       # LVM on RAID (keep in sync with LVM init)
62 -       if [ "$golvm" -eq "1" ]; then
63 -               if [ -x /sbin/vgscan -a -x /sbin/vgchange ]; then
64 -                       run_cmd "Scanning for LVM volume groups (on RAID)" /sbin/vgscan $lvmignorelocking
65 -                       run_cmd "Activating LVM volume groups (on RAID)" /sbin/vgchange -a y $lvmsysinit
66 -                       [ "$lvmversion" = "2" ] && /sbin/vgmknodes
67 -               fi
68 +       if [ -n "$output" ]; then
69 +               echo "$output"
70         fi
71 -       show "Starting up RAID devices"; ok
72 -       return $rc
73  }
74  
75  # Init LVM
76 @@ -390,8 +353,10 @@
77  
78         run_cmd "Scanning for LVM volume groups" /sbin/vgscan $lvmignorelocking
79         run_cmd "Activating LVM volume groups" /sbin/vgchange -a y $lvmsysinit
80 +
81         if [ "$lvmversion" = "2" ]; then
82 -               /sbin/vgmknodes $lvmignorelocking
83 +               # silently refresh LV /dev nodes (just for case)
84 +               /sbin/vgmknodes $lvmignorelocking 1>/dev/null 2>&1
85                 # display VG statistics
86                 /sbin/vgdisplay -s $lvmignorelocking
87         fi
88 @@ -830,7 +795,10 @@
89                 fi
90         fi
91  
92 -       # Init LVM
93 +       if ! is_no "$MDADM"; then
94 +               init_mdadm
95 +       fi
96 +
97         if ! is_no "$LVM2"; then
98                 init_lvm
99         fi
100 @@ -842,10 +810,6 @@
101                 [ $delay_cryptsetup = 0 ] && ok || fail
102         fi
103  
104 -       if ! is_no "$MDADM"; then
105 -               init_mdadm
106 -       fi
107 -
108         _RUN_QUOTACHECK=0
109         # Check filesystems
110         if [ -z "$fastboot" ] && [ -z "$nofsck" ]; then