diff options
author | madduck <madduck@3cfab66f-1918-0410-86b3-c06b76f9a464> | 2006-08-02 19:11:46 +0000 |
---|---|---|
committer | madduck <madduck@3cfab66f-1918-0410-86b3-c06b76f9a464> | 2006-08-02 19:11:46 +0000 |
commit | 9a23517aa24c0f5c857cd8a8ce540c6865301fcd (patch) | |
tree | 5c0b73d62572f9c66c1576648c3b087ff6f8c619 | |
parent | 5c0ef2266d1a190d029eab5c479e91692b29dc89 (diff) |
* Added safety net to prevent endless loops in RAID autodetection. Now just
which can get in the way of mdadm (also see next item).
* Added a workaround to the initramfs hook to deal with the problem with
/dev/md/X device nodes when /dev/mdX is also present and version-0
superblocks are in use (closes: #381181).
-rw-r--r-- | debian/changelog | 9 | ||||
-rw-r--r-- | debian/initramfs/hook | 10 | ||||
-rw-r--r-- | debian/mdadm.udev | 4 |
3 files changed, 18 insertions, 5 deletions
diff --git a/debian/changelog b/debian/changelog index 1cd56dac..640c2b26 100644 --- a/debian/changelog +++ b/debian/changelog @@ -11,12 +11,15 @@ 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 + * Added 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). * Added udev rules file to prevent udev from ever creating md device nodes, - which can get in the way of mdadm. + which can get in the way of mdadm (also see next item). + * Added a workaround to the initramfs hook to deal with the problem with + /dev/md/X device nodes when /dev/mdX is also present and version-0 + superblocks are in use (closes: #381181). * 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 @@ -25,7 +28,7 @@ mdadm (2.5.2-10) UNRELEASED; urgency=low * mkconf: now also outputs MAILADDR. * Added /usr/share/doc/mdadm/FAQ to answer some FAQs. - -- martin f. krafft <madduck@debian.org> Wed, 2 Aug 2006 19:16:18 +0100 + -- martin f. krafft <madduck@debian.org> Wed, 2 Aug 2006 20:10:00 +0100 mdadm (2.5.2-9) unstable; urgency=low diff --git a/debian/initramfs/hook b/debian/initramfs/hook index 8152b778..64ab5502 100644 --- a/debian/initramfs/hook +++ b/debian/initramfs/hook @@ -47,6 +47,16 @@ if [ "$INITRDSTART" != none ]; then eval $(mdadm --examine --scan --config=partitions \ | while read a dev level num uuid; do + if expr "$dev" : '/dev/md[0-9].*' >/dev/null; then + devfs_name="/dev/md/${dev#/dev/md}" + if [ -b "$dev" ] && [ -b "$devfs_name" ] \ + && expr "$INITRDSTART" : ".*${devfs_name}.*" >/dev/null; then + echo "W: mdadm: both $dev and $devfs_name exist, and $devfs_name appears to be used." >&2 + echo "W: mdadm: applying workaround for mdadm bug, don't worry! (see #381181)" >&2 + dev="$devfs_name" + fi + fi + if [ "$INITRDSTART" = all ] || expr "$INITRDSTART" : ".*${dev}.*" >/dev/null; then DEVS="$DEVS ${dev}=${uuid#UUID=}" LEVELS="$LEVELS ${level#level=}" diff --git a/debian/mdadm.udev b/debian/mdadm.udev index 50ed5bd5..3753f7ab 100644 --- a/debian/mdadm.udev +++ b/debian/mdadm.udev @@ -1,3 +1,3 @@ # mdadm creates its own device nodes, and it gets really annoyed when someone -# creates /dev/mdX nodes and it's not supposed to use them -KERNEL="md[0-9]*", NAME="" +# creates /dev/mdX nodes and it's not supposed to use them. see #381181. +KERNEL=="md[0-9]*", NAME="", SYMLINK="" |