diff options
-rw-r--r-- | debian/changelog | 6 | ||||
-rw-r--r-- | debian/mdadm.config | 9 |
2 files changed, 14 insertions, 1 deletions
diff --git a/debian/changelog b/debian/changelog index c39cbcf7..c9d59aef 100644 --- a/debian/changelog +++ b/debian/changelog @@ -11,6 +11,10 @@ mdadm (2.5.2-10) UNRELEASED; urgency=low The autodetection code now doesn't care about the actual name of the array device, but instead only insists that it exists, is a block device, and recognised as an array by mdadm (mdadm --detail). + * Add safety net to prevent endless loops in RAID autodetection. Now just + falls back to starting all arrays from the initramfs if it fails to + determine an acceptable array for the / filesystem in three tries + (see #381007). * checkarray: correctly recognise when the kernel is too old for parity checks, or when there are no redundant arrays present (closes: #380746). * checkarray: now supports -s|--status switch to query parity check status @@ -18,7 +22,7 @@ mdadm (2.5.2-10) UNRELEASED; urgency=low * checkarray: now supports -x|--cancel switch to cancel running checks. * mkconf: now also outputs MAILADDR. - -- martin f. krafft <madduck@debian.org> Wed, 2 Aug 2006 16:17:09 +0100 + -- martin f. krafft <madduck@debian.org> Wed, 2 Aug 2006 16:18:18 +0100 mdadm (2.5.2-9) unstable; urgency=low diff --git a/debian/mdadm.config b/debian/mdadm.config index 0579d6da..0d61dcaa 100644 --- a/debian/mdadm.config +++ b/debian/mdadm.config @@ -64,6 +64,7 @@ fi [ -n "$INITRDSTART" ] && db_set mdadm/initrdstart "$INITRDSTART" +cnt=0 while true; do db_input low mdadm/initrdstart || true db_go @@ -110,6 +111,14 @@ while true; do # exit the while true loop break fi + + cnt=$((cnt + 1)) + if [ $cnt -eq 3 ]; then + echo "W: unable to determine RAID arrays needed for boot." >&2 + echo "W: falling back to starting all of them..." >&2 + INITRDSTART=all + break + fi ;; esac done |