From b39cb390f3cddb290d31a69add294ba4904cdbeb Mon Sep 17 00:00:00 2001 From: Peter Hjalmarsson Date: Sun, 30 Jan 2011 22:48:54 +0100 Subject: [PATCH 3/3] Speed up LVM-activation Change vgscan and vgchange so they are done in one go. Faster since less work for the lvm command. vgscan is still needed for some cases like dmcrypt where /etc/lvm/cache is created, but not updated with the unlocked devices. --- defaults/initrd.scripts | 15 ++++++++++----- defaults/linuxrc | 6 ------ 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts index 20acc11..357fb71 100755 --- a/defaults/initrd.scripts +++ b/defaults/initrd.scripts @@ -637,17 +637,22 @@ startVolumes() { if [ "${USE_LVM_NORMAL}" = '1' ] then - if [ -e '/bin/vgscan' -a -e '/bin/vgchange' ] + if [ -e '/bin/lvm' ] then for dev in ${RAID_DEVICES} do setup_md_device "${dev}" done - good_msg "Scanning for Volume Groups" - /bin/vgscan --ignorelockingfailure --mknodes 2>/dev/null - good_msg "Activating Volume Groups" - /bin/vgchange -ay --sysinit 2>/dev/null + # This is needed for /bin/lvm to accept the following logic + lvm_commands="#! /bin/lvm" + # If there is a cahe, update it. Unbreak at least dmcrypt + [ -d /etc/lvm/cache ] && lvm_commands="$lvm_commands \nvgscan --mknodes --ignorelockingfailure" + # To activate volumegroups on all devices in the cache + lvm_commands="$lvm_commands \nvgchange -ay --sysinit" + # And finally execute it all (/proc/... needed if lvm is compiled without readline) + good_msg "Scanning for and activating Volume Groups" + echo -e "$lvm_commands" | /bin/lvm /proc/self/fd/0 2> /dev/null # Disable EVMS since lvm is activated and they dont work together. if [ "${USE_EVMS_NORMAL}" = '1' ] diff --git a/defaults/linuxrc b/defaults/linuxrc index d8b910c..bbe397e 100755 --- a/defaults/linuxrc +++ b/defaults/linuxrc @@ -31,12 +31,6 @@ then [ -e /linuxrc ] && rm /linuxrc fi -if [ -e /bin/lvm ] -then - [ -e /bin/vgscan ] || ln -s /bin/lvm /bin/vgscan - [ -e /bin/vgchange ] || ln -s /bin/lvm /bin/vgchange -fi - quiet_kmsg CMDLINE=`cat /proc/cmdline` -- 1.7.4.rc3