Aggiornare Proxmox 8.x al 9.x in pochi passi

Aggiornare un ambiente Proxmox VE da una versione 8.x alla nuova major release 9.x è un processo delicato che richiede attenzione e una corretta preparazione. Questo articolo guida passo passo, con esempi pratici, come eseguire l’upgrade in sicurezza, minimizzando rischi di downtime o problemi di compatibilità.

Introduzione

Proxmox VE 9 porta diverse novità e miglioramenti rispetto alla versione 8.x, inclusi aggiornamenti ai componenti di sistema, nuovi kernel, miglior supporto hardware e ottimizzazioni delle funzionalità di virtualizzazione. Tuttavia, l’aggiornamento da una release 8 (es. 8.3 o 8.4) alla 9 non è un semplice comando “apt upgrade”: richiede alcune attenzioni preliminari e la risoluzione di avvisi specifici, soprattutto legati a Debian 12 (bookworm) che ora diventa “trixie”.

1. Preparazione: backup e controllo versione

Prima di iniziare è fondamentale effettuare un backup completo delle macchine virtuali (VM) e container (CT), e dei file di configurazione chiave, come:

Inoltre, se il tuo nodo Proxmox è ancora su una versione minore della 8.x (ad esempio la 8.3), ti consiglio di aggiornarla prima tramite il pannello web di Proxmox:

clicca il nodo che vuoi aggiornare, vai nella colonna accanto su – [Updates] – poi in alto sull’area ancora a destra fai – [Refresh] – da qui avrai tutta lista di pacchetti aggiornabili disponibili con la loro versione, infine fai – [Upgrade] – si aprirà una console attendi la fine dell’upgrade.

Oppure via shell:

Assicurati di portare la versione almeno alla 8.4.10, l’ultima minore prima del passaggio alla 9.

Backup VM/CT e configurazioni critiche prima dell’upgrade

Prima di procedere con qualsiasi upgrade di Proxmox, è fondamentale avere copie di sicurezza.
Backup delle VM e CT. Puoi usare il pannello grafico o, da shell, il comando:

Esempio per una VM con ID 101 salvata nello storage local:

Backup delle configurazioni di rete e cluster

2. Verifica e gestione degli avvisi con pve8to9

Proxmox fornisce uno strumento chiamato pve8to9 per verificare la compatibilità e i problemi che potrebbero emergere durante l’upgrade.

Prima del passaggio a PVE9 per un controllo approfondito, esegui:

Un avviso comune riguarda il file /etc/sysctl.conf che su Debian 12 (bookworm) risulta deprecato. La best practice è rinominarlo e migrare le configurazioni in un nuovo file personalizzato sotto /etc/sysctl.d/99-custom.conf.

Gestione di sysctl.conf prima dell’upgrade a Proxmox 9

Prima del passaggio da Proxmox 8.x (Debian 12 bookworm) a Proxmox 9.x (Debian 13 trixie), il tool pve8to9 –full potrebbe segnalare un WARN legato all’uso di /etc/sysctl.conf.
Infatti, nelle release più recenti di Debian, il file sysctl.conf è considerato deprecato in favore di configurazioni modulari dentro /etc/sysctl.d/.

In molte installazioni, troverai che:

mostra un symlink verso /etc/sysctl.conf: “/etc/sysctl.d/99-sysctl.conf -> /etc/sysctl.conf

Perché nasce il warning

Quando rinomini o elimini /etc/sysctl.conf, il symlink /etc/sysctl.d/99-sysctl.conf resta puntato a un file inesistente, causando un avviso nel pre-check di upgrade.

Come risolvere

  1. Fare backup del file originale

Prima di modificare qualsiasi configurazione:

  1. Creare un nuovo file di configurazione

Copiare solo le righe non commentate e non vuote in un nuovo file:

  1. Rinominare il vecchio file
  1. Sistemare il symlink (opzionale, ma consigliato)

Puoi rimuoverlo o farlo puntare al nuovo file:

Per rimuoverlo:

Per aggiornarlo:

O anche lasciarlo com’è, tanto nella nuova versione Debian 13 il sistema leggera direttamente le configurazioni dentro il file che abbiamo creato (/etc/sysctl.d/99-custom.conf).

  1. Ricaricare le impostazioni

Dopo la modifica, ricaricare tutte le configurazioni sysctl senza riavviare:

Questo comando: legge /etc/sysctl.conf (se esiste), legge tutti i file .conf in /etc/sysctl.d/ ed applica immediatamente le impostazioni al kernel.

3. Aggiornare i repository e passare a Proxmox 9

Dopo aver risolto eventuali warning e verificato la compatibilità, puoi procedere con la sostituzione dei repository per passare da Debian bookworm a trixie e aggiornare Proxmox:

Se si preferisce agire manualmente sui repository si puo modificare autonomamente il file /etc/apt/sources.list aggiungedo i seguenti repository:

deb http://deb.debian.org/debian trixie main contrib
deb http://deb.debian.org/debian trixie-updates main contrib
deb http://security.debian.org/debian-security trixie-security main contrib

Modificare anche:

nano /etc/apt/sources.list.d/pve-install-repo.list

E impostare:

deb http://download.proxmox.com/debian/pve trixie pve-no-subscription

(oppure in /etc/apt/sources.list.d/pve-enterprise.list impostare deb https://enterprise.proxmox.com/debian/pve trixie pve-enterprise – se si ha una licenza enterprise).

In questo modo si aggiornano le voci relative a Debian Bookworm con quelle di Proxmox VE 9 (basato su Trixie)

Durante la fase di aggiornamento (dist-upgrade), presta attenzione alle richieste in prompt, in particolare quelle relative a file di configurazione modificati.

4. Verifiche finali post-upgrade

Una volta riavviato il nodo, verifica:

  • Versioni Proxmox, Debian e Kernel con:
  • Che tutti i servizi Proxmox siano attivi e senza errori:
  • Che le VM e i container siano avviabili.

Dopo l’aggiornamento da Proxmox VE 8 (Debian 12) a Proxmox VE 9 (Debian 13), alcuni utenti hanno riscontrato il mancato avvio di container (CT) o VM.
L’analisi ha evidenziato che in Debian 13:

Se l’IPv6 configurato non è raggiungibile o non ha il routing corretto, i servizi all’interno dei container possono andare in timeout durante la fase di avvio, impedendone il boot.

Verifica l’intera configurazione delle interfacce di rete:

oppure

Controlla anche la configurazione di rete dentro il file interfaces: /etc/network/interfaces

Se si preferisce dare priorità a IPv4, decommentare in /etc/gai.conf la riga:

precedence ::ffff:0:0/96 100

e salvare il file.

Ricaricare la configurazione:

Riavviare il container o la VM:

Suggerimento: subito dopo l’upgrade, testare l’avvio di almeno una VM e un CT per verificare la piena funzionalità della rete e della risoluzione DNS.

Riepilogo

1. Preparazione prima dell’aggiornamento

Prima di eseguire l’upgrade, è fondamentale:

  • Fare un backup completo di tutte le VM/CT.
  • Annotare eventuali configurazioni personalizzate in /etc/network/interfaces, /etc/gai.conf, /etc/pve, e altre aree di rete.
  • Aggiornare il sistema all’ultima release minore 8.x.
  • Verificare tramite il tool pve8to9 la compatibilità e i problemi che potrebbero emergere durante l’upgrade.
  • Riavviare per assicurarsi che tutto funzioni correttamente prima di procedere.

2. Modifica dei repository e Aggiornamento a Proxmox VE 9

Modificare i file dei repository di Proxmox per passare dalla versione 8 alla 9 e aggiornare la distribuzione.

3. Test post-aggiornamento

Nota importante (per esperienza diretta):
Dopo l’aggiornamento, è fondamentale testare immediatamente l’avvio di tutte le VM e CT listale con: qm list e/o pct list e provane l’avvio con: qm start <VMID> e/o pct start <CTID>.

Nel mio caso, la mancata verifica subito dopo l’aggiornamento ha nascosto un problema che avrebbe potuto essere scoperto prima.

5. Problema post-aggiornamento: ping su IPv6 e CT che non si avviano

Dopo l’aggiornamento a PVE 9, ho notato due comportamenti anomali:

  1. Un semplice ping www.google.it tentava la connessione via IPv6, che però non rispondeva, causando tempi di attesa.
  2. Alcuni container LXC fallivano l’avvio con pct start <CTID>.

Diagnosi IPv6

Test iniziali:

ping www.google.it # tentava IPv6 → 100% packet loss
ping6 <IPv6_Google> # 100% packet loss
ping <IPv4_Google> # OK

Il comportamento era dovuto al fatto che /etc/gai.conf non era configurato per dare priorità all’IPv4 (vedi precedence ::ffff:0:0/96 100) e che la classe ipv6 non era routed su nessuna delle interfacce di rete. Sorprendentemente, dopo aver risolto il problema di rete, i container LXC hanno ripreso ad avviarsi correttamente. Molto probabilmente il problema di avvio era legato a tentativi falliti di collegamento IPv6 durante l’inizializzazione del container.

Conclusioni

L’aggiornamento da Proxmox 8.x a 9.x richiede una corretta preparazione, un’attenta gestione dei backup e una verifica puntuale delle modifiche ai file di configurazione. Seguendo questa guida puoi affrontare la procedura in modo sicuro e affidabile, mantenendo la tua infrastruttura sempre aggiornata.

Considerazioni finali

  • È importante testare subito l’avvio delle VM/CT dopo un aggiornamento.
  • In Debian 12 con PVE 8, la riga in gai.conf era già decommentata, mentre in Debian 13 con PVE 9 potrebbe essere commentata di default.
  • Se si nota che ping dominio punta a IPv6 e questo non risponde, la priorità IPv4 deve essere ripristinata.
  • Alcuni problemi apparentemente “misteriosi” (come l’avvio fallito di CT) possono derivare da questioni di rete e non direttamente da errori di Proxmox.

Aggiungo un paio di controlli extra da effettuare a causa di un bug emerso ad agosto 2025:

– Per cambiare tutte le liste APT in un colpo solo, conviene usare:


Prima di eseguire apt dist-upgrade o qualsiasi upgrade, mettere in hold il pacchetto mdadm:

– Quindi procedere all’upgrade distro e smarcare successivamente mdadm:

e rilanciare l’upgrade con

– Dato il passaggio a Debian 13, conviene già passare anche al nuovo formato deb822 con:

Inoltre consiglio di prestare particolare attenzione ai log, in quanto ho notato, utilizzando ipsec, che su Debian 13 viene installata una nuova versione di apparmor che lo blocca, con questo log: Strongswan apparmor=”DENIED” operation=”open”
Il fix è installare apparmor-utils e sbloccare IPSec, impartendo questi comandi:

One thought on “Aggiornare Proxmox 8.x al 9.x in pochi passi

  1. Ottima guida, shellx!

    Segnalo giusto un paio di controlli extra, dovuti ad un piccolo bug emerso ad agosto 2025:
    – Per cambiare tutte le liste APT in un colpo solo, conviene usare: sudo sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
    sudo find /etc/apt/sources.list.d -type f -exec sed -i 's/bookworm/trixie/g' {} \;

    Prima di eseguire apt dist-upgrade o qualsiasi upgrade, mettere in hold il pacchetto mdadm: sudo apt-mark hold mdadm
    – Quindi procedere all’upgrade e smarcare mdadm: sudo apt-mark hold mdadm e rilanciare l’upgrade con sudo apt update && sudo apt full-upgrade
    – Dato il passaggio a Debian 13, conviene già passare anche al nuovo formato deb822 con: sudo apt modernize-sources

    Per il resto, occhio ai log, ho notato, utilizzando ipsec, che su Debian 13 viene installata una nuova versione di apparmor che lo blocca, con questo log: Strongswan apparmor=”DENIED” operation="open"
    Il fix è installare apparmor-utils e sbloccare IPSec, impartendo questi comandi:
    sudo apt install -y apparmor-utils
    aa-complain /usr/lib/ipsec/charon
    aa-complain /usr/lib/ipsec/stroke

Rispondi a Dragone2 Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Back To Top