Bug 55460 - rc.sysinit doesn't work right with LVM + RAID
Summary: rc.sysinit doesn't work right with LVM + RAID
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: initscripts
Version: 7.2
Hardware: All
OS: Linux
high
high
Target Milestone: ---
Assignee: Bill Nottingham
QA Contact: Brock Organ
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2001-10-31 17:12 UTC by Daniel Wittenberg
Modified: 2014-03-17 02:24 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2002-09-10 11:25:17 UTC
Embargoed:


Attachments (Terms of Use)
initscripts-casts.patch (2.05 KB, patch)
2002-03-01 23:13 UTC, Andreas Piesk
no flags Details | Diff
initscripts-halt-lvm.patch (410 bytes, patch)
2002-03-01 23:14 UTC, Andreas Piesk
no flags Details | Diff
initscripts-rc.sysinit-lvm.patch (649 bytes, patch)
2002-03-01 23:15 UTC, Andreas Piesk
no flags Details | Diff

Description Daniel Wittenberg 2001-10-31 17:12:04 UTC
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:

Comment 1 Charles Lopes 2001-12-03 16:52:34 UTC
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.

Comment 2 Andreas Piesk 2002-03-01 23:12:37 UTC
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.


Comment 3 Andreas Piesk 2002-03-01 23:13:55 UTC
Created attachment 47164 [details]
initscripts-casts.patch

Comment 4 Andreas Piesk 2002-03-01 23:14:34 UTC
Created attachment 47165 [details]
initscripts-halt-lvm.patch

Comment 5 Andreas Piesk 2002-03-01 23:15:20 UTC
Created attachment 47166 [details]
initscripts-rc.sysinit-lvm.patch

Comment 6 Need Real Name 2002-09-10 11:25:11 UTC
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


Comment 7 Bill Nottingham 2002-10-21 16:54:16 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.