unblock initramfs-tools 0.92i
hello,
default d-i MODULES=dep on arm/armel uncovered a mkinitramfs
trouble for lvm on md. rwhitby boot tested belows fix.
please dannf review belows diff. If md turns up as slave
from a dm it lacked a check for it's physical device, so
that the corresponding device driver lands on initramfs
(as bonus fixed confusing comments in the code region).
reuse of almost same awk snippet for md root 2 lines below.
on ack this should land in Lenny.
kind regards
maks
diff --git a/debian/changelog b/debian/changelog
index 60f4cc4..036a27b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+initramfs-tools (0.92i) unstable; urgency=high
+
+ * MODULES=dep fix for root lvm on md. (closes: #498237)
+ Thanks Rod Whitby <rod@whitby.id.au> for report and test.
+
+ -- maximilian attems <maks@debian.org> Mon, 08 Sep 2008 16:13:24 +0200
+
initramfs-tools (0.92g) unstable; urgency=high
[ maximilian attems ]
diff --git a/hook-functions b/hook-functions
index 8bbbbd4..6a5aebf 100644
--- a/hook-functions
+++ b/hook-functions
@@ -245,13 +245,19 @@ dep_add_modules()
# Add rootfs
manual_add_modules "${FSTYPE}"
- # lvm luks root
+ # lvm or luks root
if [ "${root#/dev/mapper/}" != "${root}" ]; then
minor=$((0x$(stat --format "%T" ${root}) % 256))
block=$(ls -1 /sys/block/dm-${minor}/slaves | head -n 1)
+ # lvm on luks or luks on lvm
if [ "${block#dm-}" != "${block}" ]; then
block=$(ls -1 /sys/block/${block}/slaves | head -n 1)
fi
+ # lvm on md or luks on md
+ if [ "${block#md}" != "${block}" ]; then
+ block=$(awk "/^${block}/{print substr(\$5, 1, 4); exit}" \
+ /proc/mdstat)
+ fi
block=${block%[0-9]*}
# md root new naming scheme /dev/md/X
elif [ "${root#/dev/md/}" != "${root}" ]; then
Reply to: