summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog6
-rw-r--r--debian/mdadm.config9
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