Beiträge

Debian 12 auf 13 Upgrade im Proxmox LXC Container (Copy & Paste)

Debian 12 Bookworm auf 13 Trixie upgraden, direkt im LXC Container auf Proxmox. Fertiges Script zum Copy & Paste, plus Backup und Verifikation.

Vorher: Snapshot

Vor jedem Major-Upgrade einen Snapshot des Containers erstellen. Einzige einfache Rückfallebene bei Problemen.

pct snapshot <CTID> pre-debian13-upgrade

Das Upgrade-Script

Im Container als root ausführen:

cat <<EOF >/etc/apt/sources.list
deb http://ftp.debian.org/debian trixie main contrib non-free non-free-firmware
deb http://ftp.debian.org/debian trixie-updates main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
deb http://ftp.debian.org/debian trixie-backports main contrib non-free non-free-firmware
EOF

apt-get update
DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confold" dist-upgrade -y

# Disable services that break in LXC / containers (harmless if not present)
systemctl disable --now systemd-networkd-wait-online.service || true
systemctl disable --now systemd-networkd.service || true
systemctl disable --now ifupdown-wait-online || true

# Install ifupdown2 (better networking stack for LXC/VMs)
apt-get install -y ifupdown2

# Cleanup
apt-get autoremove --purge -y
apt-get clean

reboot

Was das Script macht

  • Sources.list: ersetzt Bookworm-Quellen durch Trixie-Quellen, inklusive Security und Backports.
  • dist-upgrade: zieht alle Pakete auf Trixie, --force-confold behält bestehende Config-Dateien bei Konflikten.
  • Service-Disables: systemd-networkd-wait-online, systemd-networkd und ifupdown-wait-online können im LXC-Kontext beim Boot hängen bleiben, da sie auf Netzwerk-Hardware warten, die im Container nicht existiert. Deaktivieren verhindert das. || true sorgt dafür, dass das Script nicht abbricht, falls ein Dienst gar nicht installiert ist.
  • ifupdown2: modernerer Networking-Stack, funktioniert zuverlässiger in LXC/VM-Umgebungen als das klassische ifupdown.
  • Cleanup: entfernt nicht mehr benötigte Pakete und den apt-Cache.
  • Reboot: notwendig, damit Kernel-Userspace-Tools, systemd und Netzwerkstack sauber auf Trixie laufen.

Danach: Verifikation

cat /etc/debian_version
lsb_release -a
apt list --upgradable
ip a
systemctl --failed
  • debian_version sollte 13.x zeigen.
  • apt list --upgradable sollte leer sein.
  • ip a prüft, ob die Netzwerkschnittstelle nach dem Reboot korrekt hochgekommen ist.
  • systemctl --failed zeigt fehlgeschlagene Dienste nach dem Upgrade.

Bekannte Stolperfallen

  • Container-Config auf Proxmox-Host prüfen: sehr alte LXC-Templates können mit Trixie inkompatible Cgroup- oder AppArmor-Profile mitbringen.
  • Bei gepinnten Paket-Repos (Docker, PostgreSQL, etc.) müssen deren eigene sources.list-Einträge separat auf trixie umgestellt werden, das Script deckt nur die Debian-Basisquellen ab.
  • Nach dem Upgrade Dienste einzeln prüfen, die auf spezifische Paketversionen angewiesen sind (z. B. PHP, Python, Datenbanken).

Rollback

Bei Problemen: Container stoppen, Snapshot aus dem ersten Schritt zurückspielen.

pct rollback <CTID> pre-debian13-upgrade

Tutorial zum Upgrade von Proxmox VE 8.4 auf Proxmox VE 9.0 (aktuell aufbauend auf Debian 13 „Trixie“, Kernel 6.14), Vor dem Upgrade immer an einem Backup denken!


️ Übersicht & Vorbereitung

  • Wichtig: Erstelle vollständige und getestete Backups aller VMs und Container (z. B. mittels Proxmox Backup Server oder vzdump). Teste auch die Wiederherstellung in einer Lab-Umgebung

  • Stelle sicher, dass du mindestens 5 GB freien Speicherplatz auf dem Root-Dateisystem hast (10 GB empfohlen)

  • Verwende eine alternative Management-Verbindung wie IPMI, iKVM oder direkten Konsolenzugriff – SSH allein kann riskant sein, wenn der Netzwerkstack während des Upgrades neu konfiguriert wird


Testen des Upgrades

  • Richte eine Testinstanz ein (z. B. eine VM oder Testhardware mit Proxmox VE 8.4), und führe dort das Upgrade durch, bevor du es im Produktivsystem anwendest.

  • Führe das Script pve8to9 mehrfach aus (am besten mit --full), um potenzielle Problempunkte frühzeitig zu erkennen.


Schritt-für-Schritt Anleitung

Schritt 1: Checkliste & Vorarbeiten

  1. Sichere VMs/CTs vollständig.

  2. Führe
    pve8to9 --full
    aus, behebe gemeldete Warnungen, und führe es erneut aus.

Schritt 2: Repositories aktualisieren

  1. Aktualisiere dein System auf den neuesten Stand von Proxmox 8.4:

    apt update
    apt full-upgrade
  2. Ändere in /etc/apt/sources.list bzw. /etc/apt/sources.list.d/* Bookworm → Trixie:

    sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
    sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-enterprise.list
  3. Füge das Repository für Proxmox VE 9 hinzu (z. B. pve-test):

    echo "deb http://download.proxmox.com/debian/pve trixie pve-test" > /etc/apt/sources.list.d/pve9.list
  4. Ergänze ggf. Ceph‑Repository, wenn du Ceph verwendest.

Schritt 3: Systemupgrade durchführen

  1. Aktualisiere Apt-Indizes:

    apt update
    apt full-upgrade -y
  2. Falls behoben: Neuere Kernel und Software (Debian Trixie + Proxmox VE 9) werden installiert. Reboot erforderlich:

    reboot

Schritt 4: Nach dem Reboot

  1. Kernel-Check: uname -r sollte auf die neue Version (6.14.x) hinweisen.

  2. Überprüfe alle Dienste und VMs/CTs.

  3. Führe nach Möglichkeit erneut pve8to9 aus, um weitere Hinweise nach dem Upgrade zu bekommen.


Besonderheiten & bekannte Fallstricke

  • Ceph‑Upgrade nötig? Wenn du Ceph von Reef (8.4) nutzt, musst du ggf. vor dem VE‑Upgrade von Reef auf Squid upgraden

  • Namensänderungen bei NICs: Der Kernel 6.14 kann neue Netzwerk-Interface-Namen verursachen. Proxmox VE 9 erlaubt die Verwendung von Aliasnamen, aber Firewall- oder Netzwerkkonfigurationen sollten überprüft werden

  • cgroup‑v1 Entfernung, GRUB Probleme bei LVM‑UEFI, NVIDIA vGPU Inkompatibilitäten – siehe Abschnitt „Known Upgrade Issues“ der offiziellen Anleitung


Upgrade ein Beispielskript (CLI)

# 1. Backup & Vorbereitung
pve8to9 --full
# 2. Repositories auf Trixie aktualisieren
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-enterprise.list
echo "deb http://download.proxmox.com/debian/pve trixie pve-test" > /etc/apt/sources.list.d/pve9.list
# (optional) Ceph‑Repo ebenfalls anpassen bei Nutzung von Ceph
# 3. Upgrade
apt update
apt full-upgrade -y
# 4. Neustart
reboot
# 5. Nachbereitung
uname -r
pve8to9 --full