Ubuntu's LVM autodetect didn't work at all for me either. To fix it, I made a script in
/etc/initramfs-tools/scripts/local-top/forcelvm
with the following contents:
#!/bin/sh
PREREQ=""
prereqs()
{
echo "$PREREQ"
}
case $1 in
prereqs)
prereqs
exit 0
;;
esac
. /scripts/functions
# Begin real processing below this line
# This was necessary because ubuntu's LVM autodetect is completely broken. This
# is the only line they needed in their script. It makes no sense.
# How was this so hard for you to do, Ubuntu?!?!?
lvm vgchange -ay
Then did
# chmod +x `/etc/initramfs-tools/scripts/local-top/forcelvm`
for good measure and
# update-initramfs -u -k all
That fixed everything, while persisting after a system update.