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 <[EMAIL PROTECTED]> for report and test.
+
+ -- maximilian attems <[EMAIL PROTECTED]>  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


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to