Proxmox VE Upgrade: 8.4.1 → 9.1

Schritt-für-Schritt Anleitung für Single-Node Proxmox mit Windows Server 2022 VMs, Debian Reverse Proxy (Nginx) und DietPi WireGuard VPN · Kein HA · Kein Cluster
Variante: mit gültiger Enterprise-Subscription
Stand: April 2026 · Quelle: offizielles Proxmox Wiki (Upgrade_from_8_to_9)

Inhalt
  1. Voraussetzungen & Vorbereitung
  2. VM-Backups erstellen
  3. VMs ordentlich herunterfahren
  4. PVE 8.4 auf aktuellsten Stand bringen
  5. Checkscript pve8to9 ausführen
  6. Repositories auf Trixie/PVE 9 umstellen
  7. Dist-Upgrade durchführen
  8. Reboot & Verifikation
  9. Nachbereitung & VMs starten
  10. Troubleshooting & Rollback
⚠️ WICHTIG – vor dem Start lesen:

1. Voraussetzungen & Vorbereitung

1.1Zugriff sicherstellen
cat /etc/network/interfaces
ip -br a
1.2Freien Speicherplatz prüfen (mind. 5 GB auf /)
df -h /
1.3tmux installieren & starten (falls du per SSH arbeitest)
apt install -y tmux
tmux new -s pveupgrade

Mit Strg+B dann D detachen, mit tmux attach -t pveupgrade wieder rein.

2. VM-Backups erstellen

2.1Alle drei VMs mit vzdump sichern – notiere dir vorher die VM-IDs:
qm list

Beispiel-Output: VMID 100 = Win2022, 101 = Debian-Nginx, 102 = DietPi-WG. Passe die IDs unten entsprechend an!

Komplettbackup auf ein Storage (z.B. local oder ein NAS-Share) anlegen:

vzdump 100 101 102 --mode snapshot --compress zstd --storage local --notes-template "pre-pve9-upgrade"
Hinweis: --mode snapshot erlaubt Backup bei laufender VM. Für Windows Server empfiehlt es sich trotzdem, vorher innerhalb Windows alle Services (AD, SQL, etc.) sauber zu stoppen bzw. konsistente Volume Shadow Copies zu nutzen. Alternativ VMs vor dem Backup herunterfahren.
2.2Wichtige Config-Dateien sichern (als zusätzliche Absicherung):
mkdir -p /root/pve8-backup && cp -a /etc/network/interfaces /etc/hosts /etc/hostname /etc/resolv.conf /etc/pve /root/pve8-backup/ 2>/dev/null; tar czf /root/pve8-backup-$(date +%F).tar.gz /root/pve8-backup /etc/apt/sources.list /etc/apt/sources.list.d/

3. VMs ordentlich herunterfahren

Da kein HA und kein Cluster aktiv ist, ist das Vorgehen simpel: alle VMs sauber (nicht hart!) herunterfahren. Windows braucht dafür funktionierende Gastagenten bzw. ACPI-Shutdown.
3.1Graceful Shutdown der VMs (Reihenfolge: zuerst Dienste, die andere VMs nutzen):
qm shutdown 101 && qm shutdown 102 && qm shutdown 100

Warte 1–2 Minuten, dann prüfe:

qm list

Alle VMs sollten stopped sein. Falls eine hängt:

qm stop <VMID>

4. PVE 8.4 auf aktuellsten Stand bringen

Voraussetzung für das Upgrade ist mindestens pve-manager 8.4.1 – besser aber die allerletzte 8.4.x. Daher zuerst innerhalb PVE 8 alles durchpatchen.
4.1Enterprise-Repository prüfen – da du ein Abo hast, muss die Enterprise-Repo aktiv sein:
cat /etc/apt/sources.list.d/pve-enterprise.list

Die Datei sollte exakt so aussehen (nicht auskommentiert!):

deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise

Falls die Datei fehlt oder auskommentiert ist, neu anlegen:

echo "deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise" > /etc/apt/sources.list.d/pve-enterprise.list

Falls eine No-Subscription-Repo aus alten Zeiten herumliegt: entfernen, damit keine Paket-Mischung entsteht:

rm -f /etc/apt/sources.list.d/pve-no-subscription.list /etc/apt/sources.list.d/pve-install-repo.list

Subscription-Status auf dem Host prüfen:

pvesubscription get

Erwartet: status: active. Falls nicht aktiv bzw. abgelaufen, im Web-UI unter Datacenter → Node → Subscription den Key neu einlesen oder erneuern:

pvesubscription update --force
4.2Alle PVE 8.4 Pakete aktualisieren:
apt update && apt dist-upgrade -y
4.3Version prüfen – muss mindestens 8.4.1 sein:
pveversion

Falls ein neuer Kernel installiert wurde: jetzt einmal rebooten, bevor das 9er-Upgrade startet:

reboot

5. Checkscript pve8to9 ausführen

5.1Vollständigen Check laufen lassen:
pve8to9 --full

Das Script zeigt am Ende eine Zusammenfassung wie:
TOTAL: ... PASSED: ... WARNINGS: ... FAILURES: ...

Typische Hinweise bei deinem Setup:
5.2Script erneut ausführen, bis alle FAILURES behoben sind (WARNINGS sind ok):
pve8to9 --full

6. Repositories auf Trixie & PVE 9 umstellen

6.1Debian-Basis-Repos von Bookworm auf Trixie umstellen:
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list

Falls die Datei existiert (Enterprise-Setup):

[ -f /etc/apt/sources.list.d/pve-enterprise.list ] && sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-enterprise.list
6.2Enterprise-Repository auf Trixie/PVE 9 umstellen – im neuen deb822-Format anlegen:
cat > /etc/apt/sources.list.d/pve-enterprise.sources << 'EOF'
Types: deb
URIs: https://enterprise.proxmox.com/debian/pve
Suites: trixie
Components: pve-enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF

Alte Listen-Datei entfernen (verhindert doppelte Repo-Einträge):

rm -f /etc/apt/sources.list.d/pve-enterprise.list
Hinweis: Da du keinen Ceph-Cluster betreibst, kannst du die Ceph-Enterprise-Repo überspringen. Sie ist bei Single-Node ohne Ceph nicht relevant.
6.3Package-Index neu einlesen & prüfen:
apt update
apt policy | grep -E "trixie|pve"

Es sollte die pve-enterprise-Repo mit trixie auftauchen, zusammen mit den Debian-Basis-Repos (trixie / trixie-updates / trixie-security). Keine Fehlermeldungen, kein 401! Bei 401 → pvesubscription update --force aus Schritt 4.1 erneut ausführen.

7. Dist-Upgrade auf PVE 9

Letzter Check: Sitzt du an der physischen Konsole / IPMI / tmux-Session? Haben alle VMs ein Backup? Freier Platz > 5 GB? → Dann los.
7.1Audit-Log-Spam unterdrücken (optional, empfohlen):
systemctl disable --now systemd-journald-audit.socket
7.2Dist-Upgrade starten:
apt dist-upgrade

Der Prozess dauert je nach Disk-Speed 5–60 Minuten. Während des Upgrades wirst du mehrfach zu Config-File-Merges befragt.

Empfohlene Antworten bei den dpkg-Nachfragen:
DateiEmpfehlung
/etc/issueN – eigene Version behalten (wird eh neu generiert)
/etc/lvm/lvm.confY – Maintainer-Version (sofern nicht manuell angepasst)
/etc/ssh/sshd_configY – Maintainer-Version (wechsel auf KbdInteractiveAuthentication)
/etc/default/grubN – eigene Version behalten (falls Kernel-Parameter gesetzt)
/etc/chrony/chrony.confY – Maintainer-Version
„Restart services during upgrade?"Yes (Reboot folgt eh)
apt-listchanges Anzeigeq drücken zum Weitermachen
7.3Nach dem Upgrade: pve8to9 nochmal laufen lassen:
pve8to9 --full

8. Reboot & Verifikation

8.1Neustart in den neuen Kernel 6.14/6.17:
reboot
8.2Nach dem Boot prüfen:
pveversion -v

Erwartet: proxmox-ve: 9.1.x, Kernel 6.14.x-pve oder 6.17.x-pve.

uname -r
8.3Netzwerk & Storage prüfen:
ip -br a && pvesm status
Falls eine NIC einen neuen Namen bekommen hat (Kernel 6.14 erkennt Hardware teilweise anders), passe /etc/network/interfaces an oder nutze das neue Pin-Tool:
pve-network-interface-pinning
8.4Web-UI testen – im Browser:
https://<IP_DEINES_PROXMOX>:8006

Wichtig: Strg+Shift+R (bzw. +Alt+R) drücken, damit der Browser-Cache geleert wird.

9. Nachbereitung & VMs starten

9.1VMs einzeln & in sinnvoller Reihenfolge starten:
qm start 100

Warte bis Windows hochgefahren ist, dann:

qm start 101
qm start 102
9.2VM-Funktionen prüfen:
9.3Optional: Repo-Sourcen modernisieren (alle .list → .sources):
apt modernize-sources

Erst mit n Preview anzeigen, dann mit erneutem Aufruf und Y anwenden.

9.4sysctl-Einstellungen wandern nach /etc/sysctl.d/ – falls du in /etc/sysctl.conf Werte (z.B. net.ipv4.ip_forward=1 für WireGuard am Host) hattest:
cat /etc/sysctl.conf | grep -v '^#' | grep -v '^$' > /etc/sysctl.d/99-local.conf && sysctl --system
Hinweis: Dein WireGuard läuft ja innerhalb der DietPi-VM – das betrifft also nur, falls du auch am PVE-Host selbst ip_forward oder ähnliches gesetzt hattest.

10. Troubleshooting & Rollback

Fehlgeschlagenes Upgrade mitten im apt dist-upgrade

apt -f install
dpkg --configure -a

Danach erneut:

apt dist-upgrade

GRUB bootet nicht (LVM + UEFI)

[ -d /sys/firmware/efi ] && apt install grub-efi-amd64

Falls Server nicht mehr bootet: Proxmox VE ISO booten → Advanced → Rescue Boot/etc/network/interfaces oder GRUB reparieren.

LVM-Thin Pool braucht Reparatur

lvconvert --repair pve/data

Notfall-Rollback per VM-Restore

Wenn alles schief geht: Proxmox VE 9 ISO frisch installieren, dann deine VM-Backups aus Schritt 2 zurückspielen:

qmrestore /var/lib/vz/dump/vzdump-qemu-100-<TIMESTAMP>.vma.zst 100

Windows-VM hat Probleme nach Start

Memory-Usage zeigt > 100% bei Windows-VM

Normal in PVE 9 – die Anzeige berücksichtigt jetzt den QEMU-Overhead. Solange der Ballooning-Device aktiv ist und der Gast-Agent läuft, zeigt das neue Feld Host memory usage den korrekten Wert. Falls falsch: BalloonService in Windows prüfen.


✔ Fertig. Dein Proxmox läuft jetzt auf Version 9.1 mit Debian Trixie Basis und Kernel 6.14/6.17. Viel Erfolg – und nicht vergessen: die pve8to9-Summary nochmal durchgehen, falls Warnungen übrig geblieben sind.

Primärquelle: pve.proxmox.com/wiki/Upgrade_from_8_to_9 · Release Notes 9.1: pve.proxmox.com/wiki/Roadmap