If it turns out that it's not possible to put symlinks into the initrd for some reason, another alternative would be to just pack /sbin/lvm, and to invoke it with the subcommand syntax. This is less convenient for a paniced admin than having all the symlinks available, but it's still a step up from the current situation with only /sbin/vgchange available.
The attached patch (not fully-tested) should implement this proposal. --dkg
diff -ruN lvm2-2.02.39.base/debian/initramfs-tools/hooks/lvm2 lvm2-2.02.39/debian/initramfs-tools/hooks/lvm2 --- lvm2-2.02.39.base/debian/initramfs-tools/hooks/lvm2 2008-10-27 10:33:39.000000000 -0400 +++ lvm2-2.02.39/debian/initramfs-tools/hooks/lvm2 2008-10-27 11:45:18.000000000 -0400 @@ -14,13 +14,13 @@ ;; esac -if [ ! -x /sbin/vgchange ]; then +if [ ! -x /sbin/lvm ]; then exit 0 fi . /usr/share/initramfs-tools/hook-functions -copy_exec /sbin/vgchange /sbin +copy_exec /sbin/lvm /sbin for x in dm_mod dm_snapshot dm_mirror; do manual_add_modules ${x} diff -ruN lvm2-2.02.39.base/debian/initramfs-tools/scripts/local-top/lvm2 lvm2-2.02.39/debian/initramfs-tools/scripts/local-top/lvm2 --- lvm2-2.02.39.base/debian/initramfs-tools/scripts/local-top/lvm2 2008-10-27 10:33:39.000000000 -0400 +++ lvm2-2.02.39/debian/initramfs-tools/scripts/local-top/lvm2 2008-10-27 11:45:46.000000000 -0400 @@ -27,12 +27,12 @@ # Take care of lilo boot arg, risky activating of all vg case $vg in fe[0-9]*) - vgchange -ay + lvm vgchange -ay exit 0 ;; # FIXME: check major /dev/root) - vgchange -ay + lvm vgchange -ay exit 0 ;; esac @@ -53,7 +53,7 @@ # Reduce padded --'s to -'s vg=$(echo ${vg} | sed -e 's#--#-#g') - vgchange -ay ${vg} + lvm vgchange -ay ${vg} } if [ ! -e /sbin/vgchange ]; then
pgpWJZyT99v0r.pgp
Description: PGP signature