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' ]
[ -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`