50 lines
1.5 KiB
Bash
50 lines
1.5 KiB
Bash
#!/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 [ -n "$md" ]; then
|
|
echo 'DEVICE partitions' >"$mdconfig"
|
|
for i in $(cat /proc/cmdline); do
|
|
case $i in
|
|
# raid
|
|
md=[0-9]*,/*)
|
|
device=${i%%,*}
|
|
device=${device/=/}
|
|
array=${i#*,}
|
|
echo "ARRAY /dev/$device devices=$array"
|
|
;;
|
|
# partitionable raid
|
|
md=d[0-9]*,/*)
|
|
device=${i%%,*}
|
|
device=${device/=/_}
|
|
array=${i#*,}
|
|
echo "ARRAY /dev/$device devices=$array"
|
|
;;
|
|
# 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-fA-F]*)
|
|
device=${i%%,*}
|
|
device=${device/=/_}
|
|
array=${i#*,}
|
|
echo "ARRAY /dev/$device UUID=$array"
|
|
;;
|
|
esac
|
|
done >>"$mdconfig"
|
|
fi
|
|
|
|
# assemble everything
|
|
[ -s "$mdconfig" ] && /usr/bin/mdassemble
|
|
}
|
|
|
|
# vim: set ft=sh ts=4 sw=4 et:
|