summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormaximilian attems <maks@debian.org>2008-09-08 14:08:06 +0200
committermaximilian attems <maks@debian.org>2008-09-08 14:08:06 +0200
commitb2019d165312d6a6020086904bf37e6d3cc84388 (patch)
treee023eb7e7ebcd82d633a02d5ec861f00a567560b
parent1c5e3dd3801d9d142d2502fc550f6407b54f83b2 (diff)
downloadinitramfs-tools-b2019d165312d6a6020086904bf37e6d3cc84388.tar.gz
initramfs-tools-b2019d165312d6a6020086904bf37e6d3cc84388.zip
MODULES=dep fix for root lvm on md
mkinitramfs MODULES=dep detection didn't account for lvm on md, fixes mkinitramfs: missing md root /dev/mapper/ts409-root /sys entry (closes: #498237) thanks for report to Rod Whitby <rod@whitby.id.au>
-rw-r--r--hook-functions8
1 files changed, 7 insertions, 1 deletions
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