Proxmox Automatische VM-Updates (qm + vzdump) mit Netzwerktests und Auto-Wiederherstellung

Proxmox: Automatische VM-Updates (qm + vzdump) mit Netzwerktests und Auto-Wiederherstellung

In diesem Artikel zeige ich ein einfaches (aber sehr effektives) Skript zur Automatisierung von Updates für virtuelle Maschinen in Proxmox VE. Das Skript kann:

  • ein Backup der VM erstellen (optional),
  • die VM starten, falls sie vorher ausgeschaltet war,
  • ein vollständiges System-Upgrade über apt durchführen und neu starten,
  • Netzwerktests vor und nach dem Update ausführen,
  • bei Problemen automatisch aus dem Backup wiederherstellen (optional),
  • am Ende die VM wieder herunterfahren, wenn sie ursprünglich gestoppt war.

Woher bekommt man das Skript?

Du kannst das Skript direkt von meiner Webseite herunterladen:

soban.pl/bash/upgrade_proxmox_qm.sh

Benötigte Ordner

Bevor du die Automatisierung startest, erstelle zwei Ordner: einen für Skripte und einen für Logs:

Skript installieren

Lade das Skript nach /root/automate_scripts/ herunter und mache es ausführbar:

Wie funktioniert es? (kurz erklärt)

  • Zuerst wird ein Backup (vzdump snapshot + zstd) erstellt – wenn Backups aktiviert sind.
  • Wenn die VM den Status stopped hatte, startet das Skript sie und wartet WAIT_TIME Sekunden.
  • Danach werden Netzwerktests VOR dem Update ausgeführt:
  • Das Skript führt apt update/upgrade/dist-upgrade/autoremove/clean aus und startet am Ende die VM neu (reboot).
  • Nach dem Neustart wartet es erneut (WAIT_TIME) und führt die gleichen Tests NACH dem Update aus.
  • Wenn die Tests fehlschlagen und ein Backup vorhanden ist, wird automatisch qmrestore ausgeführt.
  • Am Ende fährt es die VM (optional) wieder herunter, wenn sie ursprünglich gestoppt war.

Manueller Start

Das Skript erwartet genau zwei Argumente:

  • VMID – die VM-ID in Proxmox
  • TIME_SEC – Wartezeit nach Start/Reboot (in Sekunden)

Tipp: Wähle WAIT_TIME passend zur realen Bootzeit der VM und der Dauer des Updates. In der Praxis sind 300 bis 1000 Sekunden meistens sinnvoll (je nach VM).

Vollständiges Skript (zum Einfügen / Nachschlagen)

Unten findest du das komplette Skript in der gleichen Form, wie es in dieser Automatisierung verwendet wird:

Cron (wöchentlicher Zeitplan + separate Logs pro VM)

Unten ist ein Beispiel für crontab: Updates laufen einmal pro Woche (jeden Wochentag eine andere VM), und Logs werden in separate Dateien unter /root/logs/ geschrieben.

Bearbeite root crontab:

Füge folgende Regeln ein (Kommentare bleiben auf Englisch):

Schnelle Checks / Troubleshooting

  • Stelle sicher, dass root vom Proxmox-Host per SSH zur VM verbinden kann (das Skript nutzt ssh root@<vm-hostname>).
  • Prüfe, ob DNS (oder /etc/hosts) den VM-Hostname auf dem Proxmox-Host korrekt auflöst.
  • Wenn apt nach Bestätigungen fragt, stelle sicher, dass die VM non-interactive Upgrades unterstützt oder halte problematische Pakete zurück.

Das war’s. Legen Sie das Skript in /root/automate_scripts/ ab, senden Sie die Protokolle nach /root/logs/, und Ihre wöchentliche VM-Wartung wird größtenteils zu einer Routineaufgabe.

Dell WD19/WD19S: Firmware-Update auf Proxmox/Debian ohne USB-Timeouts (fwupd + Autosuspend-Fix)


Wenn du versuchst, die Firmware der Dell WD19/WD19S Dockingstation auf Proxmox (oder Debian) mit fwupdmgr zu aktualisieren, kannst du auf den klassischen Fehler Operation timed out während der Phase Erasing… stoßen. In der Praxis scheitert das Update oft wegen USB-Energieverwaltung (Autosuspend). Unten findest du einen einfachen, wirksamen Fix sowie ein fertiges Script zum Ausführen auf Server oder Laptop.

Symptome

Am häufigsten erscheint während des Dock-Updates (WD19/WD19S) ein Fehler ähnlich wie dieser:

In diesem Fall kann fwupdmgr das WD19S-Gerät als Update State: Failed anzeigen oder ständig pending activation melden – der Flash-Vorgang wird aber nicht vollständig abgeschlossen.

Warum passiert das?

Beim Flashen führt das Dock lang laufende Operationen aus. Wenn das System versucht, über USB Strom zu sparen (Autosuspend), können USB-Control-Transfers fehlschlagen. Das Ergebnis ist ein Timeout genau beim Löschen der Firmware-Bank (erase bank).

Schneller Fix: USB-Autosuspend während des Updates deaktivieren

Die einfachste Lösung ist, Autosuspend temporär auf -1 zu setzen (also deaktivieren). Diese Einstellung gilt bis zum Neustart (außer du machst sie dauerhaft per Kernel-Cmdline), reicht aber völlig für den Update-Prozess.

Danach startest du das Update:

Nach dem Update: „pending activation” und USB-Kabel trennen

Nach einer erfolgreichen Firmware-Installation für WD19/WD19S gibt fwupdmgr oft diese Meldung aus:

Dann gehst du genau so vor:

  • USB-C-Kabel vom Dock trennen (vom Laptop).
  • (Optional) Stromversorgung des Docks für 10–15 Sekunden trennen und wieder anschließen.
  • USB-C-Kabel wieder einstecken.
  • Aktivierung ausführen:

Am Ende überprüfst du den Status:

Fertiges Script: Installation + Update + Autosuspend deaktivieren (mit Restore)

Unten findest du ein fertiges Script, das:

  • fwupd installiert
  • LVFS-Metadaten aktualisiert
  • USB-Autosuspend temporär deaktiviert (damit WD19S keine Timeouts wirft)
  • Firmware-Updates ausführt
  • danach den vorherigen Autosuspend-Wert wiederherstellt (auch wenn das Update fehlschlägt)

Du kannst das Script aus dem Artikel kopieren – oder schneller soll’s gehen: Du kannst es direkt herunterladen von:

https://soban.pl/bash/dell_updage.sh

Beispiel zum Download und Ausführen:

Wenn du den Inhalt vor dem Ausführen prüfen willst:

Falls less nicht installiert ist:

Script (vollständiger Inhalt)

Script ausführen

Am einfachsten so:

FAQ & Tipps

  • Update schlägt immer noch fehl? Trenne alle Geräte vom Dock (Monitore/LAN/USB), lasse nur Strom und USB-C, führe einen Hard-Reset durch (Strom 30s abziehen) und versuche es erneut.
  • „pending activation” nach dem Update – das ist bei WD19/WD19S normal. Du musst USB-C abziehen, wieder einstecken und dann fwupdmgr activate ausführen.
  • Aktualisiert das den Laptop-BIOS? Nicht immer. fwupdmgr zeigt „System Firmware” (BIOS/UEFI) separat vom Dock. Dieser Artikel konzentriert sich auf das Dock und das USB-Timeout-Problem.

Zusammenfassung

Wenn ein Dell WD19/WD19S Firmware-Update auf Proxmox/Debian während Erasing… scheitert, reicht es in den meisten Fällen, USB-Autosuspend temporär zu deaktivieren. Das Script oben macht das automatisch und stellt danach die vorherige Einstellung wieder her, damit dein System normal weiterläuft.