[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: