From d1b6b4e9f090dc02d91001d55dfb9382392c9b15 Mon Sep 17 00:00:00 2001 From: Peter Hjalmarsson Date: Sun, 30 Jan 2011 22:48:54 +0100 Subject: [PATCH] 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 9a5e812..30d1a98 100755 --- a/defaults/initrd.scripts +++ b/defaults/initrd.scripts @@ -632,17 +632,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" + # 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" + printf "%b\n" "$lvm_commands" | /bin/lvm /proc/self/fd/0 # 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 0083fce..ecfb546 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` -- 2.26.2