Description of Problem: If you have an LVM configuration on top of software RAID, the rc.sysinit script will fail because it tries to setup LVM before RAID, which will obviously fail. The worst part is that if vgscan doesn't find the vgda, it will wipe your LVM config info (/etc/lvmtab and /etc/lvmtab.d/*). Version-Release number of selected component (if applicable): Red Hat 7.2 init scripts, rc.sysinit specifically How Reproducible: Setup LVM on top of a software RAID device Steps to Reproduce: 1. 2. 3. Actual Results: Expected Results: LVM should be configured _after_ RAID configuration in the rc.sysinit. Additional Information:
Further both should be moved much earlier in the file before turning on the swap. That way a RAID array or LVM volume can be used for swap.
lvm initialization fails if lvm was built as module, because /proc/lvm does not exist if module isn't loaded. another (dangerous) thing is calling vgscan at every bootup. vgscan will first remove /etc/{lvmtab,lvmtab.d} and create new files afterwards. the files are containing the volume group layout. if vgscans fails for whatever reason, your setup is lost. see file initscripts-rc.sysinit- lvm.patch. the volume groups should be deacticated in /etc/rc.d/init.d/halt. see file initscripts-halt-lvm.patch. last but not least i fixed some compilerwarning (type cast). see file initscripts-casts.patch.
Created attachment 47164 [details] initscripts-casts.patch
Created attachment 47165 [details] initscripts-halt-lvm.patch
Created attachment 47166 [details] initscripts-rc.sysinit-lvm.patch
I think that the attached rc.sysinit (id=47166) is not correct: -if [ -e /proc/lvm -a -x /sbin/vgchange -a -f /etc/lvmtab ]; then - action $"Setting up Logical Volume Management:" /sbin/vgscan && /sbin/vgchange -a y +if [ -f /lib/modules/$(uname -r)/kernel/drivers/md/lvm-mod.o -o -e /proc/lvm ] && \ + [ -x /sbin/vgchange -a -f /etc/lvmtab ]; then + action $"Setting up Logical Volume Management:" /sbin/vgchange -a y fi I think the right is: -if [ -e /proc/lvm -a -x /sbin/vgchange -a -f /etc/lvmtab ]; then - action $"Setting up Logical Volume Management:" /sbin/vgscan && /sbin/vgchange -a y -fi +if [ -f /lib/modules/$(uname -r)/kernel/drivers/md/lvm-mod.o -o -e /proc/lvm ] && \ + [ -x /sbin/vgchange -a -f /etc/lvmtab ]; then + action $"Setting up Logical Volume Management:" /sbin/vgchange -a y + fi
All the LVM code should be OK in current initscripts. Talking to the LVM gurus here; they state that the shutdown isn't really necessary.