Bug#450762: Similar problem using root=UUID=.....
I've been having a similar problem trying to get lvm on raid booting
with root=UUID=...
I've managed to get it working as follows:
1. Copy /sbin/dmsetup to sbin in the initramfs.
2. Add lvm=vg0 to the kernel commandline
3. Apply the following:
diff -ur y/init x/init
--- y/init 2009-02-22 14:36:11.000000000 +0000
+++ x/init 2009-02-22 14:13:51.000000000 +0000
@@ -44,6 +44,7 @@
export panic=
export blacklist=
export resume_offset=
+export lvm=
# Bring in the main config
. /conf/initramfs.conf
@@ -98,6 +99,9 @@
resume=*)
RESUME="${x#resume=}"
;;
+ lvm=*)
+ lvm=${x#lvm=}
+ ;;
resume_offset=*)
resume_offset="${x#resume_offset=}"
;;
diff -ur y/scripts/local-top/lvm2 x/scripts/local-top/lvm2
--- y/scripts/local-top/lvm2 2009-02-22 14:36:11.000000000 +0000
+++ x/scripts/local-top/lvm2 2009-02-22 14:21:15.000000000 +0000
@@ -66,5 +66,6 @@
activate_vg "$ROOT"
activate_vg "$resume"
+[ "$lvm" != "" ] && lvm vgchange -aly --ignorelockingfailure ${lvm}
exit 0
A possible enhancement would be to change that last line to: (untested)
while [ "$lvm" != "" ]; do
lvm vgchange -aly --ignorelockingfailure ${lvm%%,*}
if [ "${lvm#*,}" = "${lvm}" ]; then
lvm=
else
lvm=${lvm#*,}
fi
done
which would allow multiple volume groups to be started (is this ever
required?)
I suspect that this will fix the root=LABEL=... issues but I don't use
LABELS and haven't tested
Note that if you use lvm= to start the volume groups (and don't use the
activate_vg) then there is no need for busybox as this merely provides
sed and tr which are no longer used.
Tim.
--
God said, "div D = rho, div B = 0, curl E = - @B/@t, curl H = J + @D/@t,"
and there was light.
http://www.woodall.me.uk/
Reply to: