Hi, I had this problem too and I figured out that no udev LVM and DM rules exist in the initramfs. When vgchange (or lvchange) -ay is called, it makes the logical volume known in the kernel then waits for udev to handle the events : create symlinks, apply rights,... based on rules. But if these rules doesn't exist, udev doesn't process these events and vgchange gets stuck.
Both dracut modules LVM and DM (in /usr/lib/dracut/modules.d/) expect to copy 10-dm.rules and 11-dm-lvm.rules (and a few others not necessary) from /lib/udev/rules.d to the initramfs. These rules are shipped by dmsetup and lvm2 packages as 55-dm.rules and 56-lvm.rules respectively, thus they are not copied by dracut into the initramfs. I guess this is a bug in the LVM and DM packaging which should ship the same rules as upstream. Or the dracut modules might be adapted as a workaround. For me I just renamed the two rules to the upstream ones, regenerate the initramfs and it works. Regards. Benoît Wallecan