Browse Source

lvm: lvm.conf (locking_type = 4)

- the use of sed is placeholder "hack" until lvm2 provides a proper
  tool for changing lvm.conf
- lvm_scan.sh should run lvm commands with --ignorelockingfailure to
  re-use lvm's existing initrd-specific logic; future lvm2 changes
  will split this flag out into various new command-line switches
- no monitoring should be started from within initramfs
- NOTE: the same should apply to 90dmraid/install
- the correct types would be: '[ "blkext", 1 , "cciss0", 16 ]'
  but lvm2 (>= 2.02.52) already properly supports both 'blkext' and
  'cciss' (including cciss0 -> cciss7)
master
Mike Snitzer 15 years ago committed by Harald Hoyer
parent
commit
0fae59d6eb
  1. 18
      modules.d/90lvm/install
  2. 9
      modules.d/90lvm/lvm_scan.sh

18
modules.d/90lvm/install

@ -1,23 +1,17 @@ @@ -1,23 +1,17 @@
#!/bin/bash
inst lvm
inst dmeventd

if ldd $(which lvm) | grep -q lib64; then
LIBDIR="/lib64"
else
LIBDIR="/lib"
fi

inst_rules "$moddir/64-lvm.rules" 64-lvm.rules

if [[ $hostonly ]] || [[ $lvmconf = "yes" ]]; then
[ -f /etc/lvm/lvm.conf ] && inst /etc/lvm/lvm.conf
if [ -f /etc/lvm/lvm.conf ]; then
inst /etc/lvm/lvm.conf
# FIXME: near-term hack to establish read-only locking;
# use command-line lvm.conf editor once it is available
sed -i -e 's/\(^[[:space:]]*\)locking_type[[:space:]]*=[[:space:]]*[[:digit:]]/\1locking_type = 4/' ${initdir}/etc/lvm/lvm.conf
fi
fi

for i in $(ls /$LIBDIR/libdevmapper-event*.so 2>/dev/null); do
dracut_install $i
done

inst_rules 10-dm.rules 13-dm-disk.rules 95-dm-notify.rules 11-dm-lvm.rules

inst "$moddir/lvm_scan.sh" /sbin/lvm_scan

9
modules.d/90lvm/lvm_scan.sh

@ -23,14 +23,17 @@ if [ ! -e /etc/lvm/lvm.conf ]; then @@ -23,14 +23,17 @@ if [ ! -e /etc/lvm/lvm.conf ]; then
printf '"a|^/dev/%s$|", ' $dev;
done;
echo '"r/.*/" ]';
echo 'types = [ "blkext", 1024 , "cciss0", 1024 ]'
echo '}';
# establish read-only locking
echo 'global {';
echo ' locking_type = 4';
echo '}';
} > /etc/lvm/lvm.conf
lvmwritten=1
fi
info "Scanning devices $lvmdevs for LVM volume groups $VGS"
lvm vgscan 2>&1 | vinfo
lvm vgchange -ay --monitor n $VGS 2>&1 | vinfo
lvm vgscan --ignorelockingfailure 2>&1 | vinfo
lvm vgchange -ay --ignorelockingfailure --monitor n $VGS 2>&1 | vinfo
if [ "$lvmwritten" ]; then
rm -f /etc/lvm/lvm.conf
ln -s /sbin/lvm-cleanup /pre-pivot/30-lvm-cleanup.sh 2>/dev/null

Loading…
Cancel
Save