diff --git a/debian/postinst b/debian/postinst index 85f2a70a..0f6296c3 100755 --- a/debian/postinst +++ b/debian/postinst @@ -8,6 +8,60 @@ set -e # done its automatic conffile handling, and all the packages we depend # of are already fully installed and configured. +set_lvm_conf() { + LVM_CONF_MARKER="# added by pve-manager to avoid scanning" + + # only do these changes once + # keep user changes afterwards provided marker is still there.. + if ! grep -qLF "$LVM_CONF_MARKER" /etc/lvm/lvm.conf; then + OLD_VALUE="$(lvmconfig --typeconfig full devices/global_filter)" + NEW_VALUE='global_filter=["r|/dev/zd.*|"]' + + export LVM_SUPPRESS_FD_WARNINGS=1 + + # check global_filter + # keep previous setting from our custom packaging if it is still there + if echo "$OLD_VALUE" | grep -qvF 'r|/dev/zd.*|'; then + SET_FILTER=1 + BACKUP=1 + fi + # should be the default since bullseye + if lvmconfig --typeconfig full devices/scan_lvs | grep -qv 'scan_lvs=0'; then + SET_SCAN_LVS=1 + BACKUP=1 + fi + if test -n "$BACKUP"; then + echo "Backing up lvm.conf before setting pve-manager specific settings.." + cp -vb /etc/lvm/lvm.conf /etc/lvm/lvm.conf.bak + fi + if test -n "$SET_FILTER"; then + echo "Setting 'global_filter' in /etc/lvm/lvm.conf to prevent zvols from being scanned:" + echo "$OLD_VALUE => $NEW_VALUE" + # comment out existing setting + sed -i -e 's/^\([[:space:]]*global_filter[[:space:]]*=\)/#\1/' /etc/lvm/lvm.conf + # add new section with our setting + cat >> /etc/lvm/lvm.conf <> /etc/lvm/lvm.conf <