mirror of
https://gitlab.archlinux.org/tpowa/archboot.git
synced 2024-09-20 12:00:37 +02:00
47 lines
No EOL
2 KiB
Text
47 lines
No EOL
2 KiB
Text
# Created by Tobias Powalowski <tpowa@archlinux.org>
|
|
|
|
run_hook ()
|
|
{
|
|
if ! [ "$MDADMRUN" = "1" ]; then
|
|
input="$(cat /proc/cmdline)"
|
|
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
|
|
case $i in
|
|
# 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
|
|
;;
|
|
# 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
|
|
;;
|
|
# 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
|
|
;;
|
|
# 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
|
|
;;
|
|
esac
|
|
done
|
|
fi
|
|
else
|
|
msg ":: Skipping already run by arch_root_advanced hook..."
|
|
fi
|
|
} |