Hi, I use an initramfs for LVM for booting LFS (7.4). Up to LVM2 2.02.98, /dev/<volume group>/<logical volume> were created by udev when typing `vgchange -ay'. So I could use a kernel line like this: linux /boot/vmlinuz... root=/dev/vg/lfs ro
But starting at LVM2 2.02.100, only /dev/mapper/≤volume group>-<logical volume> links are created. (udev version is the same, I juste updated LVM2). [short story] udev rules installed by LVM2 call /sbin/dmsetup /sbin/dmsetup is not in the initramfs! [longer story] This explains why we need vgchange --noudevsync: the udev rules do not find dmsetup and hang forever (or maybe only during the default timeout of 2 mn, I have not waited). dmsetup is used in 11-dm-lvm.rules to split the name of the LVM device, before creating the symlinks. So it could not succeed. Actually I cannot explain how the other links are created, since 10-dm.rules also calls dmsetup for getting various needed flags... I guess that is done inside the kernel. So far so good, but how is it that I could boot from root=/dev/≤volumegroup>/<logicalvolume> with LVM2 2.02.98? I have no answer... Also, while trying to investigate, I found that /etc/lvm/lvm.conf was not copied to the initramfs! Maybe some default behavior is not the same in both versions. Anyway, when copying dmsetup and /etc/lvm/lvm.conf to the initramfs, everything works fine, and the --noudevsync option is not needed. regards Pierre -- http://linuxfromscratch.org/mailman/listinfo/blfs-dev FAQ: http://www.linuxfromscratch.org/blfs/faq.html Unsubscribe: See the above information page
