diff options
author | James Meyer <james.meyer@operamail.com> | 2012-08-07 17:36:10 (GMT) |
---|---|---|
committer | James Meyer <james.meyer@operamail.com> | 2012-08-07 17:36:10 (GMT) |
commit | 9bf6461124e215b2cbff57dd0f514dac5dfc0174 (patch) | |
tree | 214ec9084a8122b167d316c49f34072d25c3a008 /abs/core/mdadm/mdadm_hook | |
parent | d959d709bde5168e9d8bbfba7affd622ced1e6b4 (diff) | |
download | linhes_pkgbuild-9bf6461124e215b2cbff57dd0f514dac5dfc0174.zip linhes_pkgbuild-9bf6461124e215b2cbff57dd0f514dac5dfc0174.tar.gz linhes_pkgbuild-9bf6461124e215b2cbff57dd0f514dac5dfc0174.tar.bz2 |
mdadm 3.2.5
Diffstat (limited to 'abs/core/mdadm/mdadm_hook')
-rwxr-xr-x | abs/core/mdadm/mdadm_hook | 67 |
1 files changed, 36 insertions, 31 deletions
diff --git a/abs/core/mdadm/mdadm_hook b/abs/core/mdadm/mdadm_hook index 57799d3..787be5d 100755 --- a/abs/core/mdadm/mdadm_hook +++ b/abs/core/mdadm/mdadm_hook @@ -1,44 +1,49 @@ -# vim: set ft=sh: -run_hook () -{ - input="$(cat /proc/cmdline)" - mdconfig="/etc/mdadm.conf" +#!/usr/bin/ash + +run_hook() { + local i= mdconfig=/etc/mdadm.conf + # for partitionable raid, we need to load md_mod first! modprobe md_mod 2>/dev/null - # If md is specified on commandline, create config file from those parameters. - if [ "$(echo $input | grep "md=")" ]; then - #Create initial mdadm.conf - # scan all devices in /proc/partitions - echo DEVICE partitions > $mdconfig - for i in $input; do + + if [ -n "$md" ]; then + echo 'DEVICE partitions' >"$mdconfig" + for i in $(cat /proc/cmdline); do case $i in - # raid + # raid md=[0-9]*,/*) - device="$(echo "$i" | sed -e 's|,/.*||g' -e 's|=||g')" - array="$(echo $i | cut -d, -f2-)" - echo "ARRAY /dev/$device devices=$array" >> $mdconfig + device=${i%%,*} + device=${device/=/} + array=${i#*,} + echo "ARRAY /dev/$device devices=$array" ;; # partitionable raid md=d[0-9]*,/*) - device="$(echo "$i" | sed -e 's|,/.*||g' -e 's|=|_|g')" - array="$(echo $i | cut -d, -f2-)" - echo "ARRAY /dev/$device devices=$array" >> $mdconfig + device=${i%%,*} + device=${device/=/_} + array=${i#*,} + echo "ARRAY /dev/$device devices=$array" ;; - # raid UUID - md=[0-9]*,[0-9,a-z]*) - device="$(echo "$i" | sed -e 's|,.*||g' -e 's|=||g')" - array="$(echo $i | cut -d, -f2-)" - echo "ARRAY /dev/$device UUID=$array" >> $mdconfig + # raid UUID + md=[0-9]*,[0-9,a-fA-F]*) + device=${i%%,*} + device=${device/=/} + array=${i#*,} + echo "ARRAY /dev/$device UUID=$array" ;; # partitionable raid UUID - md=d[0-9]*,[0-9,a-z]*) - device="$(echo "$i" | sed -e 's|,.*||g' -e 's|=|_|g')" - array="$(echo $i | cut -d, -f2-)" - echo "ARRAY /dev/$device UUID=$array" >> $mdconfig + md=d[0-9]*,[0-9,a-fA-F]*) + device=${i%%,*} + device=${device/=/_} + array=${i#*,} + echo "ARRAY /dev/$device UUID=$array" ;; - esac - done + esac + done >>"$mdconfig" fi + # assemble everything - [ -e $mdconfig ] && /sbin/mdassemble -}
\ No newline at end of file + [ -s "$mdconfig" ] && /sbin/mdassemble +} + +# vim: set ft=sh ts=4 sw=4 et: |