Mise à niveau de Proxmox VE 8 vers 9

Une fois que vous avez fait l’update vers Proxmox Virtual Environment 8.4.19, qui est la dernière version majeure de la branche 8.x, vous allez remarquer ce message d’avertissement dans l’interface :

Support for Proxmox VE 8 ends on 2026-08-31

Ça veut dire que le cycle de vie de 3 ans de cette version majeure de Proxmox achève, et c’est le temps de faire l’upgrade. C’est sûr que vous pouvez décider de skipper l’update et que le système va continuer de rouler. Par contre, après le 31 août 2026, il n’y aura plus aucun update, incluant les patchs de sécurité critiques. Avec le temps, les serveurs de packages (repositories) de Debian Bookworm et Proxmox 8 vont être archivés, et installer de nouveaux packages va devenir un vrai calvaire. La sécurité de votre hyperviseur et de vos VMs va être à risque. Dans un homelab, on peut encore s’essayer, mais faire rouler ça en prod, c’est comme jouer à la roulette russe à chaque jour.

Qu’est-ce que la nouvelle version Proxmox VE 9 apporte ?
– Une nouvelle base : Transition vers Debian 13 (Trixie).
– Un kernel récent : Les nouveaux kernels Linux offrent un meilleur support pour le hardware moderne, de meilleures performances réseau et une optimisation pour le NVMe/ZFS.
– Une stack de virtualisation à jour : Les dernières versions de QEMU et LXC (plus sécuritaires et plus rapides).
– Un nouveau Ceph : Support des versions récentes pour le stockage en cluster avec de meilleures performances.

Note importante : Gardez en tête que c’est souvent pas mal mieux de faire une feuille blanche et de réinstaller le système à partir de zéro (clean install). Vous pouvez checker mon autre tutoriel : Installation Proxmox VE 9.
Mais si faire un clean setup n’est pas une option pour vous pour une raison ou une autre, alors on se prend un bon café ou un thé, et c’est parti !

Prérequis et environnement de test

Pour bien comprendre le contexte, j’utilise la configuration suivante dans cet exemple :
– Le disque pour les machines virtuelles est monté dans le dossier /mnt/data.
– Le disque pour les backups se trouve dans /mnt/storage.
 Important : ces disques additionnels n’utilisent pas LVM, ce sont des partitions de disque standard.
C’est sûr que pour une fiabilité maximale, c’est pas mal mieux de stocker ses backups sur un appareil séparé (comme un NAS externe ou un Proxmox Backup Server), mais pour les besoins de la démonstration, on va utiliser ce setup local.

Étape 1 : Sauvegarde des machines virtuelles

Faut jamais faire un upgrade majeur sans avoir de backups. C’est nécessaire de créer des copies de sauvegarde complètes de toutes vos VMs et conteneurs (LXC) critiques sur le stockage disponible (dans mon cas, sur /mnt/storage).
C’est aussi recommandé de sauvegarder la configuration réseau pour pouvoir la restaurer rapidement si jamais ça tourne mal :

cp /etc/network/interfaces /root/interfaces.backup

Étape 2 : Vérification du système (Pre-upgrade check)

Premièrement, il faut s’assurer que le système actuel est bien à jour avec les dernières versions de la branche 8.x, et ensuite on roule le checker officiel.

apt update && apt dist-upgrade -y
pve8to9 --full

Dans mon cas, j’obtiens les avertissements suivants et une erreur (FAIL).

C’est en gros des problèmes classiques, et ça se règle de la manière suivante :
1. Régler le conflit de bootloader (FAIL: systemd-boot) : Le méta-package systemd-boot entre en conflit avec le processus d’upgrade dans Proxmox. Il faut le désinstaller (le système utilise ses propres mécanismes avec proxmox-boot-tool).

apt remove systemd-boot -y

2. Configurer la mise à jour de GRUB (WARN: Removable bootloader) : Si le checker trouve un bootloader sur un chemin amovible (EFI), il faut configurer GRUB pour qu’il s’update automatiquement : Si le checker trouve un bootloader sur un chemin amovible (EFI), il faut configurer GRUB pour qu’il s’update automatiquement :

echo 'grub-efi-amd64 grub2/force_efi_extra_removable boolean true' | debconf-set-selections -v -u
apt install --reinstall grub-efi-amd64

(Attention : ce processus peut prendre quelques minutes, il ne faut pas l’interrompre).

3. Migration de la configuration du kernel (WARN: sysctl.conf) : Garder les configurations dans le fichier de base /etc/sysctl.conf, c’est obsolète. Il faut les transférer dans un dossier dédié :

mv /etc/sysctl.conf /etc/sysctl.d/99-custom.conf
touch /etc/sysctl.conf

4. Installation du microcode du CPU (WARN: intel-microcode) : Pour recevoir les patchs de sécurité des processeurs Intel, c’est recommandé d’installer le microcode correspondant :

Attention, sous Debian, ces paquets se trouvent dans le dépôt non-free-firmware. Vous devez d’abord activer ce composant dans vos sources APT avant l’installation :

# Activation des dépôts non-free-firmware
sed -i 's/main/main non-free-firmware/g' /etc/apt/sources.list
apt update

Ensuite, installez le paquet selon votre processeur :

apt install intel-microcode -y

Pour les processeurs AMD, remplacez par

apt install amd64-microcode -y.

Après avoir fait les corrections nécessaires, il faut rouler le checker une deuxième fois :

pve8to9 --full

Dans mon cas, toutes les erreurs et avertissements sont maintenant réglés. C’est super important de tout corriger avant de commencer l’upgrade.

Étape 3 : Mise à jour des repositories

Ce système utilise les repositories no-subscription et est basé sur Debian Bookworm. Il faut changer toutes les mentions de bookworm pour trixie (le nom de code de Debian 13).
Modifier la liste principale de Debian :

sed -i 's/bookworm/trixie/g' /etc/apt/sources.list

Modifier les repositories de Proxmox :

sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-enterprise.list

Après avoir fait les changements, il faut rafraîchir la liste des packages :

apt update

Erreur potentielle (Troubleshooting) : 404 Not Found pour Ceph. Si jamais vous voyez cette erreur en roulant le apt update :

E: The repository ‘http://download.proxmox.com/debian/ceph-quincy trixie Release’ does not have a Release file.

Ça veut dire qu’il reste un vieux repository Ceph d’activé dans le système qui n’est pas supporté dans Debian 13.

Option A (pour les nodes standalone) : Si le cluster Ceph n’est pas utilisé du tout (pas de disques OSD, comme dans mon cas), on peut supprimer ce fichier en toute sécurité :

rm /etc/apt/sources.list.d/ceph.list

Et on roule à nouveau :

apt update

Option B (pour les clusters avec Ceph) : Si vous utilisez Ceph, vous devez d’abord migrer Ceph vers une version supportée (comme Squid) en suivant la documentation officielle avant de faire l’upgrade de Proxmox.

Étape 4 : Mise à jour du système

Si tout est bien préparé, on passe maintenant au moment le plus important — le lancement du processus d’upgrade majeur.
D’abord, on télécharge et on met à jour les packages de base :

apt upgrade --without-new-pkgs -y

Durant le processus, le système va poser la question suivante :

Restart services during package upgrades without asking?

Je choisis Yes pour éviter de devoir confirmer à chaque minute.
Une fois que c’est complété avec succès, on lance l’upgrade complet de la distribution :

apt dist-upgrade -y

Pendant ce processus, le système pourrait poser des questions :
Mettre à jour les fichiers de configuration (par exemple, issue, lvm.conf, ssh_config) ? — En général, c’est sécuritaire de juste peser sur Enter (garder la version actuellement installée – “keep your currently-installed version”), sauf si vous savez exactement ce que vous faites.

Étape 5 : Redémarrage

Quand l’upgrade se termine sans erreur, c’est le temps de redémarrer le serveur.

reboot

Après le reboot, on vérifie si tout a bien switché :

pveversion -v

Dans le output, vous devriez voir la version actuelle de l’hyperviseur et le nouveau kernel. Par exemple : proxmox-ve: 9.2.0 (running kernel: 7.0.2-6-pve)

C’est aussi recommandé de vérifier le statut des interfaces réseau avec la commande

ip a

pour s’assurer que tous les bridges nécessaires (vmbr0, vmbr1, vmbr2) ont monté correctement et que les machines virtuelles vont avoir accès au réseau.
Vérifiez également que vos VMs et conteneurs LXC démarrent correctement depuis l’interface web — c’est la confirmation finale que l’upgrade n’a pas affecté le stockage.

Si tout est beau, on ouvre le navigateur à l’adresse :

https://YOUR_IP:8006/

 

Étape 6 : Désactivation du dépôt Enterprise (Post-Upgrade)

Après la mise à niveau, Proxmox 9 génère automatiquement un nouveau fichier de configuration pour les dépôts payants. Si vous utilisez la version gratuite, la commande apt update va bloquer avec une erreur 401 Unauthorized.

Pour régler cela proprement sans toucher à votre dépôt No-Subscription actuel (qui fonctionne déjà très bien), il suffit de désactiver le dépôt Enterprise :

Ouvrez le nouveau fichier créé par Proxmox 9 :

nano /etc/apt/sources.list.d/pve-enterprise.sources

Trouvez la ligne Enabled: yes tout à la fin et changez-la pour no :

Enabled: no

(Sauvegardez avec Ctrl+O, Enter, puis quittez avec Ctrl+X).

Testez à nouveau pour vous assurer que tout est propre et sans erreur :

apt update

Note : Si vous préférez moderniser complètement votre configuration, utiliser Ceph Squid ou supprimer définitivement le message d’avertissement « No Valid Subscription » de l’interface, vous pouvez consulter mon guide complet : Configuration No-Subscription sur Proxmox VE 9.

Optionnel : Nettoyage des résidus de l’ancienne version (Debian 12 / PVE 8)

Après une mise à niveau majeure, il reste souvent des paquets obsolètes, des fichiers de configuration orphelins et d’anciens noyaux Linux qui encombrent le système. Pour faire propre :

Supprimez les paquets qui ne sont plus nécessaires et leurs dépendances. Cette commande prend également en charge la suppression des anciens noyaux Proxmox qui ne sont plus utilisés :

apt autoremove --purge -y

Videz le cache des paquets téléchargés pour libérer de l’espace disque :

apt clean

Nettoyez complètement les résidus de configuration des paquets supprimés (statut rc dans dpkg) :

dpkg -l | grep '^rc' | awk '{print $2}' | xargs dpkg --purge

Une fois le nettoyage terminé, vérifiez une dernière fois que vos VMs et conteneurs LXC démarrent correctement depuis l’interface web — c’est la confirmation finale que le nettoyage n’a rien affecté.

 

C’est ça qui est ça ! L’hyperviseur est updaté avec succès. On peut souffler un peu et en profiter tranquillement jusqu’à l’été 2028 🙂

Bonne chance !