{ "meta": { "title": "Proxmox-Systemaktualisierung | ProxMenux-Dokumentation", "description": "Aktualisiert Pakete innerhalb der aktuellen Proxmox-Hauptversion mit apt-get update und apt full-upgrade -y. Prüft Speicherplatz und konfigurierte Repositories, versucht GPG-Schlüssel wiederherzustellen, prüft und repariert alte LVM-PV-Header, erstellt bei Bedarf verwaltete DKMS-Treiber neu, führt autoremove/autoclean aus und bietet einen nötigen Neustart an.", "ogTitle": "Proxmox-Systemaktualisierung | ProxMenux-Dokumentation", "ogDescription": "apt full-upgrade mit Repository-Prüfung, autoremove/autoclean und Rückfrage bei erforderlichem Neustart." }, "header": { "title": "Proxmox-Systemupdate", "description": "Ruft ein einziges Arbeitsskript (update-pve-safe.sh) auf, das die laufende Proxmox-Hauptversion erkennt. Konfigurierte Repositories werden über die Proxmox-API gelesen und beibehalten. Ein Host ohne Abonnement, der nur Enterprise verwendet, wird vor der Umstellung auf no-subscription gefragt. Das Arbeitsskript aktualisiert Pakete und erstellt von ProxMenux verwaltete DKMS-Treiber für einen bereitgestellten Kernel neu. Das Hauptskript bietet einen Neustart an, wenn die Neustartmarkierung existiert oder sich der neueste installierte vom laufenden Kernel unterscheidet. Bei ausstehenden Aktualisierungen lässt sich der Vorgang auch über Update Now im Kopfbereich von ProxMenux Monitor starten.", "section": "Dienstprogramme" }, "calloutWhat": { "title": "Was das macht", "body": "Bringt den Host auf den neuesten Aktualisierungsstand seiner aktuellen Hauptversion. Führt kein Upgrade auf eine andere Hauptversion durch. Für PVE 8 → PVE 9 siehe Upgrade von PVE 8 auf PVE 9." }, "official": { "heading": "Die offizielle Proxmox Empfehlung", "intro": "Proxmox empfiehlt für die Aktualisierung eines laufenden Hosts innerhalb derselben Hauptversion diesen Befehl:", "code": "apt update && apt full-upgrade -y", "outro": "Diese eine Zeile ist der offizielle Befehl für aktuelle Proxmox-Versionen. Entscheidend ist außerdem, dass die Repositories bereinigt und die richtigen aktiviert sind und sich der Host anschließend in einem ordnungsgemäßen Zustand befindet." }, "onTop": { "heading": "Was ProxMenux zusätzlich ausführt: am Skript geprüft", "intro": "Verwendet denselben Vorgang apt full-upgrade, ergänzt um Repository-Prüfungen, DKMS-Neubau und anschließende Bereinigung. Die folgenden Schritte entsprechen scripts/utilities/proxmox_update.sh und seinem einzigen Arbeitsskript scripts/global/update-pve-safe.sh:", "items": [ "Erkennt die PVE-Hauptversion im Arbeitsskript (pveversion | grep -oP ''pve-manager/\\K[0-9]+''). Ein Skript verarbeitet PVE 8 und PVE 9. Die konfigurierten Repositories bleiben erhalten, sofern ein Host ohne Abonnement der angebotenen Umstellung nicht zustimmt.", "Behält konfigurierte Repositories bei. ensure_repositories liest die Repositories und den Abonnementstatus über die Proxmox-Repository-API. Bei aktivem Abonnement oder bereits verwendetem no-subscription- oder Test-Repository wird nichts geändert. Ein Host ohne aktives Abonnement, dessen einziges Proxmox-Repository Enterprise ist, wird vor der Umstellung auf no-subscription gefragt. Bei Ablehnung endet die Aktualisierung, ohne eine Paketquelle zu ändern.", "Führt die Aktualisierung ohne Interaktion aus mit DEBIAN_FRONTEND=noninteractive und --force-confdef --force-confold. Bei Entscheidungen zu dpkg-Konfigurationsdateien wird die Standardaktion gewählt, falls vorhanden; andernfalls bleibt die bestehende Datei erhalten.", "Erzwingt keine optionalen Werkzeuge. Das Arbeitsskript installiert weder zfsutils-linux noch chrony, ifupdown2 oder ähnliche Pakete gegen die bestehende Auswahl. Wurde bei der Proxmox-Installation auf ein Paket verzichtet, bleibt das so. Fehlende Pakete werden in den übergeordneten Installationsabläufen angezeigt, nicht bei der Aktualisierung.", "LVM-Metadatenprüfung und -reparatur. Erkennt alte PV-Header und führt vgck --updatemetadata sowie vgchange -ay für die betroffenen Volume-Gruppen aus. Dabei können LVM-Metadaten geändert werden; die Prüfung zeigt nicht nur Warnungen an.", "Bereinigt anschließend: apt-get autoremove -y + apt-get autoclean -y.", "DKMS-Neubau vor der Neustartabfrage. Das Arbeitsskript ruft pmx_rebuild_dkms_after_kernel auf, wenn ein neuerer installierter Kernel bereitsteht. Das Hauptskript prüft /var/run/reboot-required und vergleicht mit dpkg-query den von uname -r gemeldeten Kernel mit dem neuesten installierten Paket proxmox-kernel-*-pve-signed / pve-kernel-*-pve. Auf Hosts ohne needrestart kann die Markierung fehlen; der Kernelvergleich funktioniert trotzdem." ] }, "calloutOneSentence": { "title": "In einem Satz", "body": "Aktualisiert Hostpakete, behält konfigurierte Repositories ohne Zustimmung zu einer Umstellung bei, prüft LVM-Metadaten, erstellt verwaltete DKMS-Treiber neu, bereinigt mit autoremove/autoclean und bietet bei Bedarf einen Neustart an." }, "confirm": { "heading": "Bestätigungsdialog", "intro": "Die Auswahl öffnet eine Zusammenfassung der geplanten Schritte und erfordert eine ausdrückliche Bestätigung:", "imageAlt": "Bestätigungsdialog der Proxmox-Systemaktualisierung mit Repository-Prüfung, Paketaktualisierung und Bereinigung" }, "routes": { "heading": "So ruft das Hauptskript das Arbeitsskript auf", "nodes": { "source": { "label": "proxmox_update.sh", "detail": "pveversion |\ngrep -oP ''pve-manager/\\K[0-9]+''" }, "bridge": { "label": "Ein einziges Arbeitsskript", "detail": "update-pve-safe.sh\n(erkennt PVE 8 / 9\nintern)" }, "target": { "label": "Nach der Aktualisierung", "detail": "apt-get autoremove\napt-get autoclean\nNeustartabfrage bei Bedarf" } } }, "worker": { "heading": "Was das Arbeitsskript ausführt", "intro": "Ein Arbeitsskript (scripts/global/update-pve-safe.sh) verarbeitet PVE 8 (bookworm) und PVE 9 (trixie). Es erkennt die Hauptversion intern und prüft die bestehende Repository-Konfiguration, ohne die Debian-Basisquellen neu zu schreiben. Die Schritte sind:", "items": [ "Vorabprüfungen. Prüft, ob mindestens ~1 GB in /var/cache/apt/archives frei ist. Bei zu wenig Platz wird frühzeitig mit einer klaren Meldung abgebrochen, damit der Vorgang nicht mitten in einer apt-Transaktion scheitert.", "Repository-Prüfung. ensure_repositories liest Repositories und Abonnementstatus. Bei einem verwendbaren Proxmox-Repository wird nichts geändert. Ein Host ohne aktives Abonnement, der nur Enterprise verwendet, wird vor der Umstellung auf no-subscription gefragt. Bei Ablehnung endet die Aktualisierung.", "apt update mit automatischer GPG-Wiederherstellung. Bei NO_PUBKEY für ein Repository, auch eines von Drittanbietern, importiert das Arbeitsskript den fehlenden Schlüssel und versucht es erneut, bevor es abbricht.", "Ausstehende Aktualisierungen und Sicherheitsaktualisierungen. Zeigt an, wie viele Pakete geändert werden und wie viele davon aus der Sicherheitssuite stammen. Der Bestätigungsdialog enthält dadurch konkrete Zahlen.", "Bestätigungsdialog. Nach dem Aktualisieren der Paketlisten verlangt das Arbeitsskript ein ausdrückliches Ja vor der Paketaktualisierung.", "apt full-upgrade. Verwendet DEBIAN_FRONTEND=noninteractive und --force-confdef --force-confold. Dpkg folgt bei Entscheidungen zu Konfigurationsdateien seiner Standardaktion, falls vorhanden, und behält andernfalls die bestehende Datei bei.", "LVM-Prüfung. lvm_repair_check aktualisiert VG-Metadaten, wenn an Gast-VMs (DSM, TrueNAS, Speicher-Appliances) durchgereichte Festplatten mit alten PV-Headern zurückkehren.", "DKMS-Neubau für von ProxMenux verwaltete Treiber. Steht nach der Aktualisierung ein neuer Kernel bereit, liest pmx_rebuild_dkms_after_kernel die von ProxMenux installierten Treiber aus components_status.json (derzeit nvidia_driver → Modul nvidia und coral_driver → Modul gasket), installiert passende Kernel-Header (proxmox-headers-<newkver>, falls verfügbar, sonst pve-headers-<newkver>) und führt dkms autoinstall -k <newkver> aus. Zeigt dkms status die Module danach nicht für den neuen Kernel an, werden die jeweiligen Installationsprogramme mit --auto-reinstall erneut ausgeführt. Fehler werden protokolliert, brechen die Aktualisierung aber nicht ab; die Neustartabfrage wird dennoch erreicht.", "Anschließende Bereinigung. apt-get autoremove + apt-get autoclean, bevor die Steuerung an das Hauptskript zurückgeht." ] }, "post": { "heading": "Bereinigung und Neustart nach dem Update", "intro": "Nach Abschluss des Arbeitsskripts führt das Hauptskript Folgendes aus:", "code": "apt-get autoremove -y # drop unused dependencies pulled in by old packages\napt-get autoclean # drop downloaded .deb files no longer in the index", "afterCode": "Das Hauptskript prüft außerdem, ob ein Neustart erforderlich ist. Jedes dieser Signale löst die Abfrage aus:", "items": [ "/var/run/reboot-required existiert: Ein Paket oder Systemwerkzeug hat einen nötigen Neustart markiert.", "Das neueste installierte Proxmox-Kernelpaket unterscheidet sich vom laufenden Kernel, ermittelt mit dpkg-query und uname -r." ], "outro": "Trifft eines der Signale zu, fragt ein whiptail-Dialog „Einige Änderungen erfordern einen Neustart. Möchten Sie jetzt neu starten?“. Lehnen Sie ab, um mit dem laufenden Kernel weiterzuarbeiten, bis Sie selbst neu starten, etwa in einem geplanten Wartungsfenster." }, "end": { "heading": "Was Sie am Ende sehen", "intro": "Nach Abschluss des Arbeitsskripts zeigt das Terminal die Bereinigungsausgabe und bei erforderlichem Neustart die entsprechende Abfrage an:", "imageAlt": "Abschlussübersicht der Proxmox-Systemaktualisierung mit Bereinigungsausgabe und Neustartabfrage" }, "calloutDeclineReboot": { "title": "Neustart nur mit gutem Grund aufschieben", "body": "Die Installation eines neuen Pakets proxmox-kernel-* ersetzt den laufenden Kernel erst beim Neustart. Der neue Kernel und seine passenden Module werden beim nächsten Start aktiv. Planen Sie dafür ein geeignetes Wartungsfenster und prüfen Sie zuvor alle DKMS-Bauwarnungen." }, "noSub": { "heading": "Wie das Arbeitsskript das Enterprise-Repository behandelt", "intro": "Proxmox aktiviert das Enterprise-Repository standardmäßig. Ohne aktives Abonnement liefert es bei apt-get update den Fehler 401. Nur in diesem Fall und nach Rückfrage ändert das Arbeitsskript die Repositories über die Proxmox-Repository-API, die auch hinter Node → Updates → Repositories steht. Die einzelnen Fälle:", "items": [ "Mit aktivem Abonnement bleiben die Repositories unverändert und Enterprise liefert die Aktualisierungen.", "Ist das no-subscription- oder Test-Repository bereits aktiviert, bleiben die Repositories unverändert, unabhängig von weiteren eingerichteten Quellen.", "Bei fehlendem aktivem Abonnement und ausschließlich Enterprise-Repository bietet ein Dialog die Umstellung an. Bei Zustimmung wird die Enterprise-Quelle deaktiviert, no-subscription aktiviert und die Paketliste aktualisiert. Die Änderung wird in der Ansicht Changes von Audit & Report erfasst. Bei Ablehnung endet die Aktualisierung ohne Änderung einer Paketquelle.", "Vorhandene Enterprise-Ceph-Quellen werden bei derselben Umstellung deaktiviert, ohne einen anderen Ceph-Kanal auszuwählen. Auf Hosts mit Ceph wird dessen Kanal separat konfiguriert.", "Steht kein Terminal für die Rückfrage zur Verfügung, wird keine Paketquelle geändert. Die Aktualisierung endet mit einem Hinweis auf Node → Updates → Repositories." ], "outro": "Debian-Quellen und alle anderen Repository-Dateien werden bei der Aktualisierung nicht bearbeitet. Enthält ein Eintrag Enterprise zusammen mit weiteren Komponenten, wird er nicht umgestellt. Die Aktualisierung stoppt und fordert dazu auf, den Eintrag in der Proxmox-Repository-Ansicht aufzuteilen." }, "cluster": { "heading": "Clusterüberlegungen", "calloutTitle": "Auf Clustern: Aktualisieren Sie jeweils einen Knoten", "calloutBody": "Führen Sie diese Option im Proxmox-Cluster auf einem Knoten nach dem anderen aus. Warten Sie jeweils den vollständigen Neustart ab, bevor Sie fortfahren. Migrieren Sie Gäste vorher vom Knoten, um clusterweite Dienstunterbrechungen zu vermeiden. Unterschiedliche Nebenversionen wie 8.4.1 und 8.4.5 können für einige Stunden parallel laufen; unterschiedliche laufende Kernel können bei HA-verwalteten Gästen unerwartetes Verhalten verursachen." }, "doesnt": { "heading": "Was es nicht tut", "items": [ "Upgrade der Hauptversion. 8 → 9 ist ein eigener Vorgang; siehe Upgrade von PVE 8 auf PVE 9.", "Backup. Keine Snapshots, kein Rollback. Apt Operationen sind nicht transaktional. Kombinieren Sie mit Ihrer normalen Backup-Disziplin (PBS, vzdump, ZFS Snapshots).", "Aktualisierung von Containern / VMs. Nur der Host wird aktualisiert; die Gastsysteme bleiben unverändert.", "Gezieltes Einspielen von Firmware. Dies ist kein Werkzeug zum Flashen von BIOS oder Gerätefirmware. Bereits installierte Firmware- oder CPU-Mikrocodepakete können weiterhin über apt aktualisiert werden." ] }, "troubleshooting": { "heading": "Fehlerbehebung", "items": [ { "title": "apt update scheitert mit 401 Unauthorized", "body": "Das Enterprise-Repository ist aktiviert, aber der Host hat kein aktives Abonnement. Das Arbeitsskript bietet vor apt-get update die Umstellung auf no-subscription an. Wurde sie abgelehnt, starten Sie die Aktualisierung erneut und stimmen Sie zu. Alternativ deaktivieren Sie Enterprise unter Node → Updates → Repositories und aktivieren no-subscription." }, { "title": "dist-upgrade bleibt bei \"Configuring grub-pc\" hängen", "body": "Falls eine interaktive GRUB-Abfrage erscheint, fragt sie nach den Geräten für den Bootloader. --force-confold gilt für Entscheidungen zu Konfigurationsdateien, nicht für diese Geräteauswahl. Wählen Sie mit Tab + Space die passenden Startfestplatten und dann OK. Die Auswahl lässt sich vorher mit dpkg-reconfigure grub-pc konfigurieren." }, { "title": "Kernel aktualisiert, aber die neuen Module fehlen für einen Out-of-Tree-Treiber", "body": "Für verwaltete Treiber (nvidia_driver und coral_driver) führt die Hilfsfunktion dkms autoinstall -k <newkver> aus und kann deren Installationsprogramme mit --auto-reinstall erneut starten. Prüfen Sie das Ergebnis mit dkms status. Der autoinstall-Befehl kann auch andere registrierte DKMS-Module neu erstellen. Der erneute Installer-Aufruf beschränkt sich auf die verwalteten Einträge in components_status.json. Prüfen Sie weiterhin fehlende Drittanbietermodule und erstellen Sie sie bei Bedarf mit dkms autoinstall neu." }, { "title": "Die Neustartabfrage erschien nicht, obwohl ein neuer Kernel installiert wurde", "body": "Die Signale gelten alternativ: /var/run/reboot-required oder ein Unterschied zwischen laufendem und neuestem installiertem Proxmox-Kernel. Das Hauptskript wertet keine linux-image-Einträge im apt-Protokoll aus. Prüfen Sie die laufende Version mit uname -r und die installierten Kernelpakete mit dpkg-query. Planen Sie einen nötigen Neustart oder führen Sie zum passenden Zeitpunkt shutdown -r now aus." } ] }, "files": { "heading": "Beteiligte Dateien", "code": "scripts/utilities/proxmox_update.sh # this script (wrapper)\nscripts/global/update-pve-safe.sh # single safe worker (PVE 8 + PVE 9)\nscripts/global/repository-functions.sh # ensure_repositories\nscripts/global/repository_policy.py # reads and switches repositories through the Proxmox API\nscripts/global/utils-install-functions.sh # pmx_rebuild_dkms_after_kernel\n/usr/local/share/proxmenux/components_status.json # ProxMenux-managed DKMS driver registry\n/etc/apt/sources.list.d/proxmox.sources # no-subscription source, written by Proxmox when the switch is accepted\n/var/run/reboot-required # read to decide on reboot prompt\n# Reboot fallback when needrestart isn't installed:\n# dpkg-query -W 'proxmox-kernel-*-pve-signed' 'pve-kernel-*-pve' vs. uname -r" }, "related": { "heading": "Verwandte Themen", "items": [ { "href": "/docs/utils/upgrade-pve8-pve9", "label": "Aktualisieren Sie PVE 8 auf PVE 9", "tail": " — für das Upgrade der Hauptversion mit einem anderen Werkzeug und Sicherheitsmodell." }, { "href": "/docs/utils/system-utils", "label": "Installationsprogramm für Systemdienstprogramme", "tail": " — zur Installation nützlicher CLI-Werkzeuge für Aktualisierungen (htop / btop / ncdu)." }, { "href": "/docs/utils", "label": "Übersicht der Dienstprogramme", "tail": " — zurück zur Abschnittsübersicht." } ] } }