Description of Problem: Three of eight LVM partitions are reported as not existing during boottime fsck despite being present. It appears that the operation of LVM is not detected correctly in /etc/rc.d/rc.sysinit and that fsck is only reporting the first three failed devices. Version-Release number of selected component (if applicable): RedHat 7.3 SMP (Dual PIII) - supplied lvm (1.0.3) How Reproducible: Consistantly on this box. Steps to Reproduce: 1. set up and mount LVM partitions via /etc/fstab, mark them to be fsck'd. 2. reboot 3. fsck fails with /dev/vg00/groupname: not a block device Actual Results: Drops to single user "Repair Filesystem" mode. Expected Results: Boots cleanly, fscks partitions and proceeds to mount them. Additional Information: I fixed this problem by removing the test in /etc/rc.d/rc.sysinit for the existance of /proc/lvm. The test is now based solely on executable-ness of /sbin/vgchange and on the existance of /etc/lvmtab. Under these circumstances the "Starting Logical Volume Manager" message does now appear and the fsck proceeds normally and the system comes up with the LVM partitions live and mounted.
Looks like a initscript issue
You need to remake your initrd so that the lvm modules are on the initrd.
This seems to me a mistake to leave it as that. Yes, I appreciate it is a way around the problem, but it's far from intuitive and is bound to trap a large number of people and get many new-to-Linux system administrators stuck with problems when trying to bring up a new Linux fileserver. If you remove the test against /proc/lvm, it still uses the presence of /sbin/vgchange (and hence of the LVM rpm) and the existence of a /etc/lvmtab (and hence that the vgcreate has been run) to validate that LVM is likely to be desired. The driver is then modprobe'd by the existence of the entry in /etc/fstab and loads fine. There seems to me to be absolutely no need to go the initrd route - yes it creates the /proc/lvm entry sought by the init script ahead of time - but the test is extremely unlikely "to go off by mistake" even without the /proc/lvm test and will not have particularly adverse effects even if it does. Making an LVM aware initrd seems excessive merely to satisfy an init script test that is unlikely to go off in error. Just my tuppence worth.... Regards, Bevis.