diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 17:43:00 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 17:43:00 +0000 |
commit | 89853c290fd822a88c56150dde50aaa1421c0c8c (patch) | |
tree | c88de9d39f187cf339e1add1f768bbda4a61130f /debian/initramfs/scripts/local-block | |
parent | Adding upstream version 4.2. (diff) | |
download | mdadm-89853c290fd822a88c56150dde50aaa1421c0c8c.tar.xz mdadm-89853c290fd822a88c56150dde50aaa1421c0c8c.zip |
Adding debian version 4.2-5.debian/4.2-5debian
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/initramfs/scripts/local-block')
-rwxr-xr-x | debian/initramfs/scripts/local-block/mdadm | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/debian/initramfs/scripts/local-block/mdadm b/debian/initramfs/scripts/local-block/mdadm new file mode 100755 index 0000000..214f24c --- /dev/null +++ b/debian/initramfs/scripts/local-block/mdadm @@ -0,0 +1,61 @@ +#!/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 |