diff options
author | madduck <madduck@3cfab66f-1918-0410-86b3-c06b76f9a464> | 2006-08-02 15:20:03 +0000 |
---|---|---|
committer | madduck <madduck@3cfab66f-1918-0410-86b3-c06b76f9a464> | 2006-08-02 15:20:03 +0000 |
commit | 81a35bb8b3ac61c6ac98322b92e50913ec2d6cf4 (patch) | |
tree | 7060d03d010a82eb54c482eae399a3dadb31ec85 | |
parent | f88d195cc5f8db742a5e619c35d1dff3406f8477 (diff) |
* 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).
-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 |