This commit is contained in:
parent
1e9a023573
commit
aa739b6497
@ -1,3 +1,8 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 23 15:38:13 CEST 2008 - hare@suse.de
|
||||
|
||||
- Include mkinitrd scriptlets.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 27 07:51:31 CEST 2008 - xwhu@suse.de
|
||||
|
||||
|
13
lvm2.spec
13
lvm2.spec
@ -20,12 +20,14 @@ Obsoletes: lvm
|
||||
PreReq: %fillup_prereq %insserv_prereq
|
||||
AutoReqProv: on
|
||||
Version: 2.02.38
|
||||
Release: 1
|
||||
Release: 5
|
||||
Summary: LVM2 Tools
|
||||
Source: LVM2.%{version}.tar.bz2
|
||||
Source1: lvm.conf
|
||||
Source2: boot.lvm
|
||||
Source3: sysconfig.lvm
|
||||
Source4: mkinitrd-setup.sh
|
||||
Source5: mkinitrd-boot.sh
|
||||
Patch: improve_probing.diff
|
||||
Patch2: no-inc-audit.diff
|
||||
Patch3: no_buildroot_shared.diff
|
||||
@ -93,6 +95,9 @@ rm $RPM_BUILD_ROOT/%_lib/liblvm2cmd.so
|
||||
install -m 644 %{SOURCE1} $RPM_BUILD_ROOT/etc/lvm
|
||||
mkdir -p $RPM_BUILD_ROOT/etc/init.d
|
||||
install -m 755 %{SOURCE2} $RPM_BUILD_ROOT/etc/init.d
|
||||
install -d $RPM_BUILD_ROOT/lib/mkinitrd/scripts
|
||||
install -m 755 %{SOURCE4} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/setup-lvm2.sh
|
||||
install -m 755 %{SOURCE5} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/boot-lvm2.sh
|
||||
mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates
|
||||
install -m 644 %{SOURCE3} $RPM_BUILD_ROOT/var/adm/fillup-templates
|
||||
rm $RPM_BUILD_ROOT/usr/include/lvm2cmd.h
|
||||
@ -125,6 +130,10 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%dir /var/lock/lvm
|
||||
%config /etc/lvm/lvm.conf
|
||||
%config /etc/init.d/boot.lvm
|
||||
%dir /lib/mkinitrd
|
||||
%dir /lib/mkinitrd/scripts
|
||||
/lib/mkinitrd/scripts/setup-lvm2.sh
|
||||
/lib/mkinitrd/scripts/boot-lvm2.sh
|
||||
/var/adm/fillup-templates/sysconfig.lvm
|
||||
/sbin/fsadm
|
||||
/sbin/lvchange
|
||||
@ -220,6 +229,8 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_mandir}/man8/vgsplit.8.gz
|
||||
|
||||
%changelog
|
||||
* Wed Jul 23 2008 hare@suse.de
|
||||
- Include mkinitrd scriptlets.
|
||||
* Fri Jun 27 2008 xwhu@suse.de
|
||||
- update to 2.02.38
|
||||
Fix tracking of validity of PVs with no mdas in lvmcache.
|
||||
|
76
mkinitrd-boot.sh
Normal file
76
mkinitrd-boot.sh
Normal file
@ -0,0 +1,76 @@
|
||||
#!/bin/bash
|
||||
#%stage: volumemanager
|
||||
#%depends: evms
|
||||
#%programs: /sbin/vgscan /sbin/vgchange /sbin/lvm
|
||||
#%modules: linear
|
||||
#%if: -n "$root_lvm2"
|
||||
#
|
||||
##### LVM (Logical Volume Management)
|
||||
##
|
||||
## This activates and waits for an LVM.
|
||||
##
|
||||
## Command line parameters
|
||||
## -----------------------
|
||||
##
|
||||
## root_lvm2=1 use LVM
|
||||
## root=/dev/mapper/... use this device as Volume Group
|
||||
## vg_roots use this group as Volume Group
|
||||
##
|
||||
|
||||
lvm2_get_vg() {
|
||||
local param=$1
|
||||
local vg_root vg_name
|
||||
local sysdev
|
||||
|
||||
case $param in
|
||||
/dev/disk/by-*/*)
|
||||
vg_root=
|
||||
;;
|
||||
/dev/mapper/*)
|
||||
vg_name=${o##root=/dev/mapper/}
|
||||
vg_root=${vg_name%%-*}
|
||||
;;
|
||||
/dev/*)
|
||||
set -- $(IFS=/ ; echo $param)
|
||||
if [ "$#" = "3" ] ; then
|
||||
# Check sysfs. If there are subdirectories
|
||||
# matching this name it's a block device
|
||||
for d in /sys/block/$2\!* ; do
|
||||
if [ -d $d ] ; then
|
||||
sysdev=$d
|
||||
fi
|
||||
done
|
||||
# Not found in sysfs, looks like a VG then
|
||||
if [ -z "$sysdev" ] ; then
|
||||
vg_root=$2
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
echo $vg_root
|
||||
}
|
||||
|
||||
# load the necessary module before we initialize the raid system
|
||||
load_modules
|
||||
|
||||
if [ -n "$root_lvm2" ] ; then
|
||||
o=$(get_param root)
|
||||
vg_root=$(lvm2_get_vg $o)
|
||||
if [ "$vg_root" ] ; then
|
||||
# We are waiting for a device-mapper device
|
||||
root_major=$(sed -n 's/\(.*\) device-mapper/\1/p' /proc/devices)
|
||||
fi
|
||||
o=$(get_param resume)
|
||||
vg_resume=$(lvm2_get_vg $o)
|
||||
if [ "$vg_resume" ] ; then
|
||||
resume_major=$(sed -n 's/\(.*\) device-mapper/\1/p' /proc/devices)
|
||||
fi
|
||||
fi
|
||||
|
||||
# initialize remebered and parameterized devices
|
||||
for vgr in $vg_root $vg_resume $vg_roots; do
|
||||
vgchange -a y $vgr
|
||||
done
|
||||
|
||||
unset lvm2_get_vg
|
44
mkinitrd-setup.sh
Normal file
44
mkinitrd-setup.sh
Normal file
@ -0,0 +1,44 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
#%stage: volumemanager
|
||||
#%depends: evms
|
||||
#
|
||||
# get information about the current blockdev
|
||||
update_blockdev
|
||||
|
||||
# Check whether we are using LVM2 (only available when not using EVMS)
|
||||
if [ -z "$root_evms" ] && [ -x /sbin/lvdisplay ] ; then
|
||||
lvm_blockdev=
|
||||
|
||||
for bd in $blockdev; do
|
||||
update_blockdev $bd
|
||||
|
||||
vg_name=$(lvdisplay -c 2> /dev/null | sed -n "/.*:$blockmajor:$blockminor/p")
|
||||
vg_dev=${vg_name%%:*}
|
||||
vg_name=${vg_name#*:}
|
||||
vg_root=${vg_name%%:*}
|
||||
if [ "$vg_root" ] ; then
|
||||
local vg_blockdev
|
||||
root_lvm2=1
|
||||
realrootdev=${vg_dev## }
|
||||
vg_blockdev=$(vgs --noheadings --options pv_name $vg_root 2> /dev/null | sed "s@,@\n@g" | sed "s@([0-9]*)@@g;s@ @@g" | sort | uniq)
|
||||
lvm_blockdev="$lvm_blockdev $vg_blockdev"
|
||||
[ $? -eq 0 ] || return 1
|
||||
vg_roots="$vg_roots $vg_root"
|
||||
else
|
||||
lvm_blockdev="$lvm_blockdev $bd"
|
||||
fi
|
||||
done
|
||||
blockdev="$lvm_blockdev"
|
||||
fi
|
||||
|
||||
if use_script lvm2; then
|
||||
tmp_root_dm=1 # lvm needs dm
|
||||
mkdir -p $tmp_mnt/etc/lvm
|
||||
mkdir -p $tmp_mnt/var/lock/lvm
|
||||
cp -a /etc/lvm/lvm.conf $tmp_mnt/etc/lvm
|
||||
fi
|
||||
|
||||
save_var root_lvm2
|
||||
save_var vg_roots
|
||||
|
Loading…
x
Reference in New Issue
Block a user