From 0fae59d6eb3039628df1413a1007c5b8fe15c9c5 Mon Sep 17 00:00:00 2001 From: Mike Snitzer Date: Wed, 13 Jan 2010 16:27:49 +0100 Subject: [PATCH] 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) --- modules.d/90lvm/install | 18 ++++++------------ modules.d/90lvm/lvm_scan.sh | 9 ++++++--- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/modules.d/90lvm/install b/modules.d/90lvm/install index 56e2eb067..2d622f51e 100755 --- a/modules.d/90lvm/install +++ b/modules.d/90lvm/install @@ -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 diff --git a/modules.d/90lvm/lvm_scan.sh b/modules.d/90lvm/lvm_scan.sh index 73ba84509..3bf858a85 100755 --- a/modules.d/90lvm/lvm_scan.sh +++ b/modules.d/90lvm/lvm_scan.sh @@ -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 -- 2.47.3