Outils pour utilisateurs

Outils du site


articles:upgrade_proxmox_8_to_9_-_notes

upgrade proxmox 8 to 9 - notes

Proxmox VE 9.0 vient tout juste d’être publié (5 août 2025), Il repose sur la dernière version de Debian 13 (Trixie) et intègre des upgrade de ses composants principaux :

  • Noyau Linux : 6.14.8‑2 (nouveau stable par défaut)
  • QEMU : 10.0.2
  • LXC : 6.0.4
  • ZFS : 2.3.3
  • Ceph Squid : 19.2.3

L’interface utilisateur reste globalement inchangée par rapport à la version 8, ce qui facilite la transition pour les utilisateurs habitués à Proxmox VE 8. la mise à jour est globalement assez simple; toutefois il y a des étapes a respecter.

Cet article est une compilation de mes notes et étapes pour la mise a jour de mon cluster, en espérant qu'elles puissent vous aider dans votre upgrade.

TL;DR;

La procédure présentée ici est un « raccourci » par rapport aux instructions officielles publiées par Proxmox.

Bien qu’elle ait été testée sur plusieurs environnements, elle n’est pas garantie de fonctionner dans toutes les configurations.

Avant de lancer la mise à jour, faites un backup complet de vos VM, conteneurs, fichiers de configuration et, surtout, de votre cluster si vous en avez un.

Il est IMPÉRATIF d'executer les commandes d'upgrade via ssh (et non via l'interface web), le mieux est d'utiliser un shell avec session re-connectable (screen par exemple)

Validation et vérifications

Avant toutes instructions “regrettables” il convient de s'assurer que notre pve est en 8.4 et complétement update.

Update du pve

root@pve03:~# apt update
root@pve03:~# apt dist-upgrade
root@pve03:~# pveversion 
pve-manager/8.4.11/ (running kernel: 6.8.12-15-pve)

La derniere commande doit préciser la version 8.4.xx

Validation de l'update

Proxmox fourni un outil qui permet de valider le host.

root@pve03:~# pve8to9
= CHECKING VERSION INFORMATION FOR PVE PACKAGES =

Checking for package updates..
PASS: all packages up-to-date

Checking proxmox-ve package version..
PASS: proxmox-ve package has version >= 8.4-0

Checking running kernel version..
PASS: running kernel '6.8.12-15-pve' is considered suitable for upgrade.

= CHECKING CLUSTER HEALTH/SETTINGS =

PASS: systemd unit 'pve-cluster.service' is in state 'active'
PASS: systemd unit 'corosync.service' is in state 'active'
PASS: Cluster Filesystem is quorate.

Analzying quorum settings and state..
INFO: configured votes - nodes: 5
INFO: configured votes - qdevice: 0
INFO: current expected votes: 5
INFO: current total votes: 5

Checking nodelist entries..
PASS: nodelist settings OK

Checking totem settings..
PASS: totem settings OK

INFO: run 'pvecm status' to get detailed cluster status..

= CHECKING HYPER-CONVERGED CEPH STATUS =

SKIP: no hyper-converged ceph setup detected!

= CHECKING CONFIGURED STORAGES =

PASS: storage 'local' enabled and active.
PASS: storage 'local-lvm' enabled and active.
PASS: storage 'nfs-iso' enabled and active.
PASS: storage 'nfs-vmstore' enabled and active.
INFO: Checking storage content type configuration..
PASS: no storage content problems found
PASS: no storage re-uses a directory for multiple content types.
INFO: Check for usage of native GlusterFS storage plugin...
PASS: No GlusterFS storage found.
INFO: Checking whether all external RBD storages have the 'keyring' option configured
SKIP: No RBD storage configured.

= VIRTUAL GUEST CHECKS =

INFO: Checking for running guests..
PASS: no running guest detected.
INFO: Checking if LXCFS is running with FUSE3 library, if already upgraded..
SKIP: not yet upgraded, no need to check the FUSE library version LXCFS uses
INFO: Checking for VirtIO devices that would change their MTU...
PASS: All guest config descriptions fit in the new limit of 8 KiB
INFO: Checking container configs for deprecated lxc.cgroup entries
PASS: No legacy 'lxc.cgroup' keys found.
INFO: Checking VM configurations for outdated machine versions
PASS: All VM machine versions are recent enough

= MISCELLANEOUS CHECKS =

INFO: Checking common daemon services..
PASS: systemd unit 'pveproxy.service' is in state 'active'
PASS: systemd unit 'pvedaemon.service' is in state 'active'
PASS: systemd unit 'pvescheduler.service' is in state 'active'
PASS: systemd unit 'pvestatd.service' is in state 'active'
INFO: Checking for supported & active NTP service..
PASS: Detected active time synchronisation unit 'chrony.service'
INFO: Checking if the local node's hostname 'pve03' is resolvable..
INFO: Checking if resolved IP is configured on local node..
PASS: Resolved node IP '192.168.99.22' configured and active on single interface.
INFO: Check node certificate's RSA key size
PASS: Certificate 'pve-root-ca.pem' passed Debian Busters (and newer) security level for TLS connections (4096 >= 2048)
PASS: Certificate 'pve-ssl.pem' passed Debian Busters (and newer) security level for TLS connections (2048 >= 2048)
PASS: Certificate 'pveproxy-ssl.pem' passed Debian Busters (and newer) security level for TLS connections (2048 >= 2048)
INFO: Checking backup retention settings..
PASS: no backup retention problems found.
INFO: checking CIFS credential location..
PASS: no CIFS credentials at outdated location found.
INFO: Checking permission system changes..
INFO: Checking custom role IDs
PASS: no custom roles defined
INFO: Checking node and guest description/note length..
PASS: All node config descriptions fit in the new limit of 64 KiB
INFO: Checking if the suite for the Debian security repository is correct..
PASS: found no suite mismatch
INFO: Checking for existence of NVIDIA vGPU Manager..
PASS: No NVIDIA vGPU Service found.
INFO: Checking bootloader configuration...
WARN: System booted in uefi mode but grub-efi-amd64 meta-package not installed, new grub versions will not be installed to /boot/efi! Install grub-efi-amd64.
FAIL: systemd-boot meta-package installed. This will cause problems on upgrades of other boot-related packages. Remove 'systemd-boot' See https://pve.proxmox.com/wiki/Upgrade_from_8_to_9#sd-boot-warning for more information.
INFO: Check for dkms modules...
SKIP: could not get dkms status
INFO: Check for legacy 'filter' or 'group' sections in /etc/pve/notifications.cfg...
PASS: No legacy 'filter' or 'group' sections found!
INFO: Check for legacy 'notification-policy' or 'notification-target' options in /etc/pve/jobs.cfg...
PASS: No legacy 'notification-policy' or 'notification-target' options found!
INFO: Check for LVM autoactivation settings on LVM and LVM-thin storages...
PASS: all guest volumes on storage 'local-lvm' have autoactivation disabled
PASS: No problematic volumes found.
INFO: Checking lvm config for thin_check_options...
PASS: Check for correct thin_check_options passed
INFO: Check space requirements for RRD migration...
PASS: Enough free disk space for increased RRD metric granularity requirements, which is roughly 65.59 MiB.
INFO: Checking for IPAM DB files that have not yet been migrated.
NOTICE: Found leftover legacy IPAM DB file in '/etc/pve/priv/ipam.db'.
        This file can be deleted AFTER upgrading ALL nodes to PVE 8.4+.
PASS: No legacy MAC DB found.
INFO: Checking if the legacy sysctl file '/etc/sysctl.conf' needs to be migrated to new '/etc/sysctl.d/' path.
PASS: Legacy file '/etc/sysctl.conf' exists but does not contain any settings.
INFO: Checking if matching CPU microcode package is installed.
PASS: Found matching CPU microcode package 'intel-microcode' installed.
SKIP: NOTE: Expensive checks, like CT cgroupv2 compat, not performed without '--full' parameter

= SUMMARY =

TOTAL:    51
PASSED:   43
SKIPPED:  5
WARNINGS: 1
FAILURES: 1

ATTENTION: Please check the output for detailed information!
Try to solve the problems one at a time and then run this checklist tool again.

il est impératif de corriger les erreurs

UEFI

Dans mon cas, je dois retirer le meta-package systemd-boot, mais avant je dois m'assurer que les composants EFI sont correctement installés, et pour ce faire, je dois identifié la partition UEFI; elle est en général /dev/sda2 et doit etre de FSTYPE vFAT / FAT32.

root@pve03:~# lsblk -f
NAME                 FSTYPE      FSVER    LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
sda
├─sda1
├─sda2               vfat        FAT32          F219-BECF
└─sda3               LVM2_member LVM2 001       XbtjoZ-JtT7-X08F-ltwz-xW1z-0glf-W1WHJf
  ├─pve-swap         swap        1              4d9f7947-5fab-425d-9210-78a0b903f1b2                  [SWAP]
  ├─pve-root         ext4        1.0            7661b132-9c66-4f90-9acd-fa295d3c1b66     53.1G    15% /
  ├─pve-data_tmeta
  │ └─pve-data-tpool
  │   └─pve-data
  └─pve-data_tdata
    └─pve-data-tpool
      └─pve-data

On confirme bien ici le /dev/sda2, on va ensuite monté cette partition au bon endroit:

root@pve03:~# mount /dev/sda2 /boot/efi/

On va maintenant installer l'entrée efi proxmox, cette étape est cruciale:

root@pve03:~# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=proxmox --recheck
Installing for x86_64-efi platform.
Installation finished. No error reported.

Si tout se passe bien, on va updaté le grub:

root@pve03:~# update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.8.12-16-pve
Found initrd image: /boot/initrd.img-6.8.12-16-pve
Found linux image: /boot/vmlinuz-6.8.12-15-pve
Found initrd image: /boot/initrd.img-6.8.12-15-pve
Found linux image: /boot/vmlinuz-6.8.12-14-pve
Found initrd image: /boot/initrd.img-6.8.12-14-pve
Found linux image: /boot/vmlinuz-6.8.4-2-pve
Found initrd image: /boot/initrd.img-6.8.4-2-pve
Found memtest86+ 64bit EFI image: /boot/memtest86+x64.efi
Adding boot menu entry for UEFI Firmware Settings ...
done

on va ensuite régénérer les entrées UEFI:

root@pve03:~# efibootmgr -c -d /dev/sda2 -p 2 -l '\EFI\proxmox\grubx64.efi' -L "Proxmox"
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0004,0000,0008,0001,0002,0003,0005,0006
Boot0000* proxmox
Boot0001* DTO UEFI USB Floppy/CD
Boot0002* DTO UEFI USB Hard Drive
Boot0003* DTO UEFI ATAPI CD-ROM Drive
Boot0005* DTO Legacy USB Floppy/CD
Boot0006* Hard Drive
Boot0008* Samsung SSD 840 EVO 250GB
Boot0004* Proxmox

Dans certains cas, il faut “forcer” grub… ce n'est pas obligatoire, mais cela permet de s'assurer que grub fera son job.

root@pve03:~# echo 'grub-efi-amd64 grub2/force_efi_extra_removable boolean true' | debconf-set-selections -v -u
info: Trying to set 'grub2/force_efi_extra_removable' [boolean] to 'true'
info: Loading answer for 'grub2/force_efi_extra_removable'

Enfin, on peut installer le grub-efi-amd64 :

root@pve03:~# apt install --reinstall grub-efi-amd64
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
  proxmox-kernel-6.8.12-14-pve-signed
Use 'apt autoremove' to remove it.
The following packages will be REMOVED:
  grub-pc
The following NEW packages will be installed:
  grub-efi-amd64
0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
Need to get 45.7 kB of archives.
After this operation, 384 kB disk space will be freed.
Do you want to continue? [Y/n]
Get:1 http://download.proxmox.com/debian/pve bookworm/pve-no-subscription amd64 grub-efi-amd64 amd64 2.06-13+pmx7 [45.7 kB]
Fetched 45.7 kB in 0s (734 kB/s)
Preconfiguring packages ...
(Reading database ... 72859 files and directories currently installed.)
Removing grub-pc (2.06-13+pmx7) ...
Selecting previously unselected package grub-efi-amd64.
(Reading database ... 72851 files and directories currently installed.)
Preparing to unpack .../grub-efi-amd64_2.06-13+pmx7_amd64.deb ...
Unpacking grub-efi-amd64 (2.06-13+pmx7) ...
Setting up grub-efi-amd64 (2.06-13+pmx7) ...
Installing for x86_64-efi platform.
File descriptor 3 (pipe:[329533283]) leaked on vgs invocation. Parent PID 642498: grub-install.real
File descriptor 3 (pipe:[329533283]) leaked on vgs invocation. Parent PID 642498: grub-install.real
Installation finished. No error reported.
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.8.12-16-pve
Found initrd image: /boot/initrd.img-6.8.12-16-pve
Found linux image: /boot/vmlinuz-6.8.12-15-pve
Found initrd image: /boot/initrd.img-6.8.12-15-pve
Found linux image: /boot/vmlinuz-6.8.12-14-pve
Found initrd image: /boot/initrd.img-6.8.12-14-pve
Found linux image: /boot/vmlinuz-6.8.4-2-pve
Found initrd image: /boot/initrd.img-6.8.4-2-pve
Found memtest86+ 64bit EFI image: /boot/memtest86+x64.efi
Adding boot menu entry for UEFI Firmware Settings ...
done
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for shim-signed:amd64 (1.44+pmx1+15.8-1+pmx1) ...

A ce point, on peut désinstaller systemd-boot:

root@pve03:~# apt remove systemd-boot
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
  proxmox-kernel-6.8.12-14-pve-signed
Use 'apt autoremove' to remove it.
The following packages will be REMOVED:
  systemd-boot
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 250 kB disk space will be freed.
Do you want to continue? [Y/n]
(Reading database ... 72852 files and directories currently installed.)
Removing systemd-boot (252.39-1~deb12u1) ...
Processing triggers for man-db (2.11.2-2) ...

Upgrade

Ca commence comme un upgrade Debian classique, en changeant les sources:

Sources

Débian

root@pve03:~# sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
root@pve03:~# sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-enterprise.list

on en profite pour supprimer les références à proxmox (on va les remettre plus tard):

root@pve03:~# rm /etc/apt/sources.list.d/pve-install-repo.list

PVE & Ceph

root@pve03:~# cat > /etc/apt/sources.list.d/proxmox.sources << EOF
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
root@pve03:~# cat > /etc/apt/sources.list.d/ceph.sources << EOF
Types: deb
URIs: http://download.proxmox.com/debian/ceph-squid
Suites: trixie
Components: no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF

Validation

root@pve03:~# pve8to9

Aucune erreurs (Failures) ou Warnings ne doit apparaitre.

Upgrade

root@pve03:~# apt update
root@pve03:~# apt dist-upgrade

Durant le procésus, il y aura plusieurs questions:

Question réponse Explication
/etc/issue Non Il s'agit du fichier qui est affiché sur la console (physique) du host… j'aime bien la version de proxmox 8 (elle serait remplacé par la version “standard” de debian)
Redémarrage des services Oui
/etc/lvm/lvm.conf Oui on peut mettre a jour le fichier de config de lvm

Derniere vérification et reboot

root@pve03:~# pve8to9
root@pve03:~# reboot now

Installation de ProxMenuX

Il s'agit d'un outil fort intéréssant

root@pve03:~# bash -c "$(wget -qLO - https://raw.githubusercontent.com/MacRimi/ProxMenux/main/install_proxmenux.sh)"
articles/upgrade_proxmox_8_to_9_-_notes.txt · Dernière modification : de frater