At this time, I have a functional system, but /etc/lvm/lvm.conf is not included in my initramfs. I did not edit any file besides /etc/lvm/lvm.conf to filter out devices. This is the diff between a working (good) and a not working (bad) initramfs: ===================================== $ LANG=en diff -r good bad Binary files good/bin/dmesg and bad/bin/dmesg differ Only in good/bin: ntfs-3g diff -r good/conf/conf.d/resume bad/conf/conf.d/resume 1c1 < RESUME=UUID=2a90babe-f5f4-4954-8844-9f069a8b8abf --- > RESUME=/dev/sdb3 diff -r good/conf/modules bad/conf/modules 1d0 < fuse 7,9d5 < dm_mod < dm_snapshot < dm_mirror Binary files good/etc/console-setup/boottime.kmap.gz and bad/etc/console-setup/boottime.kmap.gz differ diff -r good/etc/default/console-setup bad/etc/default/console-setup 8c8 < BOOTTIME_KMAP_MD5="4c25c2e93531789eeb1644f36883c96d" --- > BOOTTIME_KMAP_MD5="24de09e93760848ccb47b26a64b2e66a" Only in good/etc/modprobe.d: fuse Only in good/etc/modprobe.d: lrm-video Only in bad/etc/modprobe.d: lrm-video.dpkg-new Only in good/etc/modprobe.d: nvidia-kernel-nkc Only in bad/etc/modprobe.d: nvidia-kernel-nkc.dpkg-new Only in good/etc/udev/rules.d: 65-dmsetup.rules Only in good/etc/udev/rules.d: 85-lvm2.rules Binary files good/lib/libc.so.6 and bad/lib/libc.so.6 differ Only in good/lib: libdevmapper.so.1.02.1 Only in good/lib: libfuse.so.2 Only in good/lib: libncurses.so.5 Only in good/lib: libntfs-3g.so.23 Binary files good/lib/libproc-3.2.7.so and bad/lib/libproc-3.2.7.so differ Only in good/lib: libpthread.so.0 Only in good/lib: libreadline.so.5 Only in good/lib: librt.so.1 Only in good/lib: libsepol.so.1 Only in good/lib/modules/2.6.24-23-generic/kernel/drivers: md Only in good/lib/modules/2.6.24-23-generic/kernel/fs: fuse Binary files good/sbin/depmod and bad/sbin/depmod differ Only in good/sbin: dmsetup Only in good/sbin: lvm Binary files good/sbin/modprobe and bad/sbin/modprobe differ Only in good/sbin: mount.fuse Only in good/sbin: mount.ntfs Only in good/sbin: mount.ntfs-3g Binary files good/sbin/pkill and bad/sbin/pkill differ Binary files good/sbin/rmmod and bad/sbin/rmmod differ Only in good/scripts/init-premount: lvm2 diff -r good/scripts/init-top/console_setup bad/scripts/init-top/console_setup 27,30d26 < for i in 1 2 3 4 5 6; do < [ -c /dev/tty$i ] || mknod /dev/tty$i c 4 $i < done < Only in good/scripts/local-bottom: ntfs_3g Only in good/scripts/local-premount: ntfs_3g ===================================== regarding lvm: Only in good/etc/udev/rules.d: 85-lvm2.rules Only in good/sbin: lvm Only in good/scripts/init-premount: lvm2 ===================================== There's something I don't understand about how initramfs is updated: it seems that you're right and that the lvm2 hook is called even if it's not present in /etc/initramfs/hooks/. I'll try to make a fresh install and a backup and try to reproduce the behavior. In my point of view, everything worked out the moment I copied /usr/share/initramfs-tools/hooks/lvm2 inito /etc/initramfs-tools/hooks/. Now I can remove /etc/initramfs-tools/hooks/lvm2 and update initramfs: it's still working. Maybe update-initramfs includes the lvm2 hook (present in /etc/initramfs-tools/hooks or not) when it detects a PV on the system. That would be the most rational explanation. In a nutshell: - If the LVM configuration is made and the initramfs updated right away while a PV is present: it will work after the reboot - If the LVM configuration is made, the system rebooted, the initramfs updated after the reboot: it won't work as far as the lvm2 hook won't be included because no PV is detected (system using a sngle static path).