Opened 15 years ago
Closed 15 years ago
#414 closed defect (fixed)
If you exclude an LVM disk in mondoarchive it still shows up in mountlist.txt
Reported by: | Michael Shapiro | Owned by: | Bruno Cornec |
---|---|---|---|
Priority: | normal | Milestone: | 2.2.9.3 |
Component: | mindi | Version: | 2.2.9.2 |
Severity: | major | Keywords: | |
Cc: |
Description
mindi-2.0.7.3-0.20100407121858.rhel5
In this example, /dev/sdb is a PV in the VG vgtest:
# pvs PV VG Fmt Attr PSize PFree /dev/sda2 VolGroup00 lvm2 a- 14.88G 0 /dev/sdb1 vgtest lvm2 a- 96.00M 44.00M
I ran mondoarchive:
mondoarchive -N -O -9 -p mondo-mrou43 -n mrou10:/nwinstall -d mondo/mrou43 -s 650m -E "/dev/sdb"
The mountlist.txt file still contains an entry for vgtest:
/dev/sda2 lvm lvm 15623212 /dev/VolGroup00/LogVol00 / ext3 lvm /dev/sda1 /boot ext3 104391 /boot /dev/VolGroup00/LogVol01 swap swap lvm /dev/vgtest/lvol1 /lvmmnt ext3 lvm /dev/sdc1 /wholemnt ext3 122864
The problem is that, if you exclude a PV from a VG, mindi doesn't add that PV to the list_of_devices in MakeMountlist(). I was able to fix the problem in mindi by adding the function GetPVsForLV() and adding its result to the list_of_devices in MakeMountlist(). Basically, it looks at the current_partition and, if it's a VG, adds all of the VG's PV's to the list_of_devices.
# Get PV's for an LV GetPVsForLV() { if [ -n "$1" ]; then lvol="$1" vg=`lvdisplay $lvol 2>/dev/null |awk '/VG Name/{print $NF;exit}'` if [ -z "$vg" ]; then return fi vgdisplay -v $vg 2>/dev/null | awk '/PV Name/{print$NF}' fi }
In the MakeMountlist() function:
if [ "$MINDI_EXCLUDE_DEVS" ] ; then l="" list_of_devices="`ReadAllLink $current_partition`" for d in $list_of_devices; do l="$l `GiveMapperOfdm $d`" done list_of_devices="`echo $l | sort -u`" ##### ADDED THESE TWO LINES ##### PVVG=`GetPVsForLV $current_partition` list_of_devices="$list_of_devices $PVVG" for d in $MINDI_EXCLUDE_DEVS ; do if [ "`echo " $list_of_devices " | grep " $d"`" != "" ]; then echo "Excluding $current_partition from mountlist (due to excluded device $d)" >> $LOGFILE skip=1 continue fi done fi
With the modifications, running mondoarchive produces a correct mountlist.txt (i.e. with no VG vgtest in it):
/dev/sda2 lvm lvm 15623212 /dev/VolGroup00/LogVol00 / ext3 lvm /dev/sda1 /boot ext3 104391 /boot /dev/VolGroup00/LogVol01 swap swap lvm /dev/sdc1 /wholemnt ext3 122864
The attached mindi has been modified with the fixes described above. Look for the lines:
#### START ADD BY MIKE SHAPIRO ####
and
#### END ADD BY MIKE SHAPIRO ####
Attachments (1)
Change History (2)
by , 15 years ago
Attachment: | mindi.modified.040710 added |
---|
comment:1 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
One more time, thanks a lot Mike for this patch. I know you sent it to me privately, but I didn't get it correctly and thought it was potentialy fixed in 2.2.9.3 beta already.
I've made slight modification to your original patch for a smoother integration in the code.
Will be in 2.2.9.3. I'm rebuilding packages with your patches for rhel5 right now for you to check.
mindi modified with fixes