]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
lvm: lvm.conf (locking_type = 4)
authorMike Snitzer <msnitzer@redhat.com>
Wed, 13 Jan 2010 15:27:49 +0000 (16:27 +0100)
committerHarald Hoyer <harald@redhat.com>
Wed, 13 Jan 2010 15:29:12 +0000 (16:29 +0100)
- 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
modules.d/90lvm/lvm_scan.sh

index 56e2eb067daab8925266a6823c4edd7b16814e10..2d622f51e80644f63b52d2b01406b2843edc8612 100755 (executable)
@@ -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
index 73ba84509bb1ebb927c92c71096f3dacf995e531..3bf858a85167af1bf76b10c357ffeade38a28755 100755 (executable)
@@ -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