Created
September 28, 2020 16:04
-
-
Save Gro-Tsen/3753e5df481cd42470538b7329a033a9 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
PREREQ="multipath" | |
prereqs() | |
{ | |
echo "$PREREQ" | |
} | |
case $1 in | |
# get pre-requisites | |
prereqs) | |
prereqs | |
exit 0 | |
;; | |
esac | |
. /scripts/functions | |
# Poor man's mdadm-last-resort@.timer | |
# That kicks in 2/3rds into the ROOTDELAY | |
if [ ! -f /run/count.mdadm.initrd ] | |
then | |
COUNT=0 | |
# Unfortunately raid personalities can be registered _after_ block | |
# devices have already been added, and their rules processed, try | |
# triggering again. See #830770 | |
udevadm trigger --action=add -s block || true | |
wait_for_udev 10 | |
else | |
COUNT=$(cat /run/count.mdadm.initrd) | |
fi | |
COUNT=$((COUNT + 1)) | |
echo $COUNT > /run/count.mdadm.initrd | |
# Run pure assemble command, even though we default to incremental | |
# assembly it is supported for users to export variables via | |
# param.conf such as IMSM_NO_PLATFORM. See #830300 | |
mdadm -q --assemble --scan --no-degraded || true | |
MAX=30 | |
if [ ${ROOTDELAY:-0} -gt $MAX ]; then | |
MAX=$ROOTDELAY | |
fi | |
MAX=$((MAX*2/3)) | |
if [ "$COUNT" = "$MAX" ] | |
then | |
# Poor man's mdadm-last-resort@.service for incremental devices | |
mdadm -q --run /dev/md?* | |
# And last try for all others | |
mdadm -q --assemble --scan --run | |
rm -f /run/count.mdadm.initrd | |
fi | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment