diff --git a/modules.d/90lvm/64-lvm-vol_id.rules b/modules.d/90lvm/64-lvm-vol_id.rules index 4cebb463..2b0f44d6 100644 --- a/modules.d/90lvm/64-lvm-vol_id.rules +++ b/modules.d/90lvm/64-lvm-vol_id.rules @@ -9,7 +9,7 @@ ACTION!="add|change", GOTO="lvm_end" KERNEL=="dm-*", IMPORT{program}="vol_id --export $tempnode" -ENV{ID_FS_TYPE}=="LVM2_member", RUN+="/bin/sh -c '/sbin/lvm vgscan; /sbin/lvm vgchange -ay'" +ENV{ID_FS_TYPE}=="LVM2_member", RUN+="/bin/ln -fs /sbin/lvm_scan /initqueue/lvm_scan.sh" OPTIONS="link_priority=-100" ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}" diff --git a/modules.d/90lvm/64-lvm.rules b/modules.d/90lvm/64-lvm.rules index c55887d1..1b1b6f4b 100644 --- a/modules.d/90lvm/64-lvm.rules +++ b/modules.d/90lvm/64-lvm.rules @@ -9,7 +9,7 @@ ACTION!="add|change", GOTO="lvm_end" KERNEL=="dm-*", IMPORT{program}="/sbin/blkid -o udev -p $tempnode" -ENV{ID_FS_TYPE}=="LVM2_member", RUN+="/bin/sh -c '/sbin/lvm vgscan; /sbin/lvm vgchange -ay'" +ENV{ID_FS_TYPE}=="LVM2_member", RUN+="/bin/ln -fs /sbin/lvm_scan /initqueue/lvm_scan.sh" OPTIONS="link_priority=-100" ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}" diff --git a/modules.d/90lvm/install b/modules.d/90lvm/install index 48f6ec7f..cba321bb 100755 --- a/modules.d/90lvm/install +++ b/modules.d/90lvm/install @@ -5,3 +5,5 @@ if [ -x /lib/udev/vol_id ]; then else inst_rules "$moddir/64-lvm.rules" 64-device-mapper.rules fi + +inst "$moddir/lvm_scan.sh" /sbin/lvm_scan diff --git a/modules.d/90lvm/lvm_scan.sh b/modules.d/90lvm/lvm_scan.sh new file mode 100755 index 00000000..cd843aa6 --- /dev/null +++ b/modules.d/90lvm/lvm_scan.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +if $UDEV_QUEUE_EMPTY >/dev/null 2>&1; then + [ -h "$job" ] && rm -f "$job" + # run lvm scan if udev has settled + lvm vgscan + lvm vgchange -ay +fi +