3 # Abort if any command returns an error value
6 # This script is called as the last step of the installation of the
7 # package. All the package's files are in place, dpkg has already
8 # done its automatic conffile handling, and all the packages we depend
9 # of are already fully installed and configured.
12 LVM_CONF_MARKER
="# added by pve-manager to avoid scanning"
14 # only do these changes once
15 # keep user changes afterwards provided marker is still there..
16 if ! grep -qLF "$LVM_CONF_MARKER" /etc
/lvm
/lvm.conf
; then
17 OLD_VALUE
="$(lvmconfig --typeconfig full devices/global_filter)"
18 NEW_VALUE
='global_filter=["r|/dev/zd.*|"]'
20 export LVM_SUPPRESS_FD_WARNINGS
=1
23 # keep previous setting from our custom packaging if it is still there
24 if echo "$OLD_VALUE" |
grep -qvF 'r|/dev/zd.*|'; then
28 # should be the default since bullseye
29 if lvmconfig
--typeconfig full devices
/scan_lvs |
grep -qv 'scan_lvs=0'; then
33 if test -n "$BACKUP"; then
34 echo "Backing up lvm.conf before setting pve-manager specific settings.."
35 cp -vb /etc
/lvm
/lvm.conf
/etc
/lvm
/lvm.conf.bak
37 if test -n "$SET_FILTER"; then
38 echo "Setting 'global_filter' in /etc/lvm/lvm.conf to prevent zvols from being scanned:"
39 echo "$OLD_VALUE => $NEW_VALUE"
40 # comment out existing setting
41 sed -i -e 's/^\([[:space:]]*global_filter[[:space:]]*=\)/#\1/' /etc
/lvm
/lvm.conf
42 # add new section with our setting
43 cat >> /etc
/lvm
/lvm.conf
<<EOF
45 $LVM_CONF_MARKER ZFS zvols
50 if test -n "$SET_SCAN_LVS"; then
51 echo "Adding scan_lvs=0 setting to /etc/lvm/lvm.conf to prevent LVs from being scanned."
52 # comment out existing setting
53 sed -i -e 's/^\([[:space:]]*scan_lvs[[:space:]]*=\)/#\1/' /etc
/lvm
/lvm.conf
54 # add new section with our setting
55 cat >> /etc
/lvm
/lvm.conf
<<EOF
57 $LVM_CONF_MARKER LVM volumes
67 # We don't print a status message here, as dpkg already said
68 # "Processing triggers for ...".
70 # test if /etc/pve is mounted; else simple exit to avoid
71 # error during updates
72 test -f /etc
/pve
/local
/pve-ssl.pem ||
exit 0;
73 test -e /proxmox_install_mode
&& exit 0;
75 # the ExecStartPre doesn't triggers on service reload, so just in case
76 pvecm updatecerts
--silent || true
78 deb-systemd-invoke reload-or-try-restart pvedaemon.service
79 deb-systemd-invoke reload-or-try-restart pvestatd.service
80 deb-systemd-invoke reload-or-try-restart pveproxy.service
81 deb-systemd-invoke reload-or-try-restart spiceproxy.service
82 deb-systemd-invoke reload-or-try-restart pvescheduler.service
87 # Configure this package. If the package must prompt the user for
88 # information, do it here.
90 mkdir
/etc
/pve
2>/dev
/null || true
92 if test ! -e /var
/lib
/pve-manager
/apl-info
/download.proxmox.com
; then
93 mkdir
-p /var
/lib
/pve-manager
/apl-info
94 cp /usr
/share
/doc
/pve-manager
/aplinfo.dat
/var
/lib
/pve-manager
/apl-info
/download.proxmox.com
98 if ! test -f /root
/.forward ||
! grep -q '|/usr/bin/pvemailforward' /root
/.forward
; then
99 echo '|/usr/bin/pvemailforward' >>/root
/.forward
102 systemctl
--system daemon-reload
>/dev
/null || true
104 # same as dh_systemd_enable (code copied)
106 UNITS
="pvedaemon.service pveproxy.service spiceproxy.service pvestatd.service pvebanner.service pvescheduler.service pve-daily-update.timer"
107 NO_RESTART_UNITS
="pvenetcommit.service pve-guests.service"
109 for unit
in ${UNITS} ${NO_RESTART_UNITS}; do
110 deb-systemd-helper unmask
"$unit" >/dev
/null || true
112 # was-enabled defaults to true, so new installations run enable.
113 if deb-systemd-helper
--quiet was-enabled
"$unit"; then
114 # Enables the unit on first installation, creates new
115 # symlinks on upgrades if the unit file has changed.
116 deb-systemd-helper
enable "$unit" >/dev
/null || true
118 # Update the statefile to add new symlinks (if any), which need to be
119 # cleaned up on purge. Also remove old symlinks.
120 deb-systemd-helper update-state
"$unit" >/dev
/null || true
124 # FIXME: remove after beta is over and add hunk to actively remove the repo
125 BETA_SOURCES
="/etc/apt/sources.list.d/pvetest-for-beta.list"
126 if test -f "$BETA_SOURCES" && dpkg
--compare-versions "$2" 'lt' '7.0-9~' && dpkg
--compare-versions "$2" 'gt' '7.0~'; then
127 echo "Removing the during beta added pvetest repository file again"
128 rm -v "$BETA_SOURCES" || true
131 # FIXME: remove in PVE 8.0
132 if test ! -e /proxmox_install_mode
&& test -n "$2" && dpkg
--compare-versions "$2" 'lt' '7.0-6~'; then
133 # PVE 4.0 beta to 5.4 ISO had a bug and did not generated a unique machine-id. below is a
134 # very relaxed machine-id list from all ISOs (released, tests & internal) possibly affected
136 -e a0ee88c29b764c46a579dd89c86c2d84 \
137 -e ecbf104295bd4f8b90bb82dc2fa5e9e5 \
138 -e c8fa51cd0c254ea08b0e37c1e37afbb9 \
139 -e 2ec24eda629a4c8d8c1f8dac50a9ee5f \
140 -e ef8db290720047159b426bd322839d70 \
141 -e bd94244c0da6419a82a383e62dc03b51 \
142 -e 45d4e7046c3d4c26af8acd589f358ac6 \
143 -e 8c445f96b3064ff79f825ea78a3eefde \
144 -e 6f9fae0f0a794fd4b89b3abecfd7f182 \
145 -e 6f9fae0f0a794fd4b89b3abecfd7f182 \
146 -e 285de85759894b3f9ad9844a89045af6 \
147 -e 89971dede7b04c98b2b0bc8845f53320 \
148 -e 4e3b6e9550f24d638bc26211a7b37df5 \
149 -e bc2f684e31ee4daf95e45c62410a95b1 \
150 -e 8cc7bc883fd048b78a4af7433c48e341 \
151 -e 9b46d99712854566bb02a656a3ff9191 \
152 -e e7fc055af47048ee884dcb88a7474336 \
153 -e 13d879f75e6447a69ed85179bd93759a \
154 -e 5b59e448c3e74029af2ac91f572d68a7 \
155 -e 5a2bd0d11a6c41f9a33fd527751224ea \
156 -e 516afc72013c4b9da85b309aad987df2 \
157 -e b0ce8d24684845e8ac337c588a7715cb \
158 -e e0af064c16e9463e9fa980eac66427c1 \
159 -e 6e925d11b497446e8e7f2ff38e7cf891 \
160 -e eec280213051474d8bfe7e089a86744a \
161 -e 708ded6ee82a46c08b77fecda2284c6c \
162 -e 615cb2b78b2240289fef74da610c146f \
163 -e b965b329a7e246d5be66a8d367f5760d \
164 -e 5472a49c6436426fbebd7881f7b7f13b \
167 echo "found static machine-id bug from Proxmox VE ISO installer <= 5.4, regenerating machine-id"
168 systemd-id128 new |
tee /etc
/machine-id.new
/var
/lib
/dbus
/machine-id.new
170 mv /etc
/machine-id.new
/etc
/machine-id
171 mv /var
/lib
/dbus
/machine-id.new
/var
/lib
/dbus
/machine-id
172 echo "new machine-id generated, a reboot is recommended"
174 echo "machine-id check OK"
180 if test ! -e /proxmox_install_mode
; then
181 # modeled after code generated by dh_start
182 for unit
in ${UNITS}; do
183 if test -n "$2"; then
184 dh_action
="reload-or-restart";
188 if systemctl
-q is-enabled
"$unit"; then
189 deb-systemd-invoke
$dh_action "$unit"
195 abort-upgrade|abort-remove|abort-deconfigure
)
198 *) echo "$0: didn't understand being called with \`$1'" 1>&2