docs: review utility documentation in all seven translations

This commit is contained in:
Jonatan
2026-10-17 15:08:54 +02:00
parent ce1a3de719
commit 9f6296501a
58 changed files with 8588 additions and 224 deletions
+145
View File
@@ -0,0 +1,145 @@
{
"meta": {
"title": "VM nach OVA / OVF exportieren | ProxMenux-Dokumentation",
"description": "Exportieren Sie eine Proxmox-VM mit dem DMTF-Standardschema in ein portables OVA-Archiv oder OVF-Verzeichnis. VMDK-Festplatten im Format streamOptimized und SHA1-Manifest. Importierbar in VMware ESXi / Workstation / Fusion, VirtualBox und wieder in Proxmox.",
"ogTitle": "VM nach OVA / OVF exportieren | ProxMenux-Dokumentation",
"ogDescription": "Wandeln Sie eine Proxmox-VM in ein portables OVA- / OVF-Paket um, das mit VMware und VirtualBox kompatibel ist."
},
"header": {
"title": "VM nach OVA / OVF exportieren",
"description": "Wandelt eine Proxmox-VM mit dem DMTF-OVF-Standardschema in ein portables OVA-Paket (ein TAR-Archiv) oder OVF-Paket (Deskriptor und VMDK-Dateien) um. Die Festplatten werden mit qemu-img in VMDK im Format streamOptimized konvertiert. Das Ergebnis lässt sich in VMware (ESXi / Workstation / Fusion), VirtualBox und mit dem Importwerkzeug wieder in Proxmox importieren.",
"section": "Dienstprogramme"
},
"intro": {
"title": "Was das macht",
"body": "Liest die Konfiguration einer gestoppten VM, konvertiert jede Festplatte in VMDK im Format streamOptimized, erzeugt einen OVF-Deskriptor und ein SHA1-Manifest und verpackt alles als einzelne <code>.ova</code>-Datei oder als <code>-ovf</code>-Verzeichnis. Die Quell-VM wird dabei nicht verändert."
},
"picker": {
"heading": "VM-Auswahl",
"body": "Beim Start zeigt das Skript alle VMs aus <code>qm list</code> mit VMID, Name und Status an. Wählen Sie die zu exportierende VM aus:",
"imgAlt": "Dialog zur Auswahl der zu exportierenden VM mit einer Liste aller VMs"
},
"stopped": {
"heading": "Die VM muss gestoppt sein",
"intro": "Für ein konsistentes Festplattenabbild muss die VM gestoppt sein. Falls die ausgewählte VM läuft, bietet ProxMenux an, sie herunterzufahren:",
"items": [
"Geordnetes Herunterfahren mit <code>qm shutdown $VMID --timeout 120</code> (wartet 2 Minuten auf das Herunterfahren des Gasts über ACPI).",
"Nach Ablauf der Wartezeit wird ein erzwungener Stopp angeboten: <code>qm stop $VMID</code> (entspricht dem Abschalten der Stromversorgung).",
"Wenn Sie beide ablehnen, wird der Export abgebrochen - es werden keine Daten berührt."
],
"warnTitle": "Ein erzwungener Stopp entspricht dem Abschalten der Stromversorgung",
"warnBody": "<code>qm stop</code> entspricht dem Ziehen des Netzsteckers. Beim nächsten Start kann eine Reparatur des Gastdateisystems nötig sein. Nutzen Sie nach Möglichkeit das geordnete Herunterfahren und erzwingen Sie den Stopp nur bei Gästen, die nicht reagieren."
},
"format": {
"heading": "Formatauswahl: OVA vs. OVF",
"headerFormat": "Format",
"headerOutput": "Ausgabe",
"headerPros": "Vorteile",
"headerCons": "Nachteile",
"rows": [
{
"format": "OVA",
"output": "name-vmid-ts.ova",
"pros": "Eine einzelne, in sich geschlossene Datei, die sich einfach verschieben, per sftp übertragen oder an ein Ticket anhängen lässt.",
"cons": "Benötigt ~220% der virtuellen Festplattengröße (zusätzlicher Platz für das TAR-Archiv während der Erstellung)."
},
{
"format": "OVF",
"output": "name-vmid-ts-ovf/",
"pros": "~120% der virtuellen Festplattengröße. Leichter zu prüfen, da der Deskriptor reines XML ist. Kann vor dem Import bearbeitet werden.",
"cons": "Mehrere Dateien, die gemeinsam übertragen werden müssen."
}
]
},
"destination": {
"heading": "Zielverzeichnis",
"body": "Wählen Sie ein voreingestelltes Verzeichnis (<code>/var/lib/vz/dump</code>, <code>/var/lib/vz/template/iso</code>) oder geben Sie einen eigenen Pfad ein. Das Skript prüft vor dem Start, ob das Verzeichnis beschreibbar ist, und warnt bei knappem Speicherplatz.",
"calloutTitle": "Faustregel für freien Speicherplatz",
"calloutBody": "Planen Sie für den OVF-Export einer VM mit insgesamt 100 GB virtueller Festplattengröße ~120 GB freien Platz ein, für OVA ~220 GB. Bei weitgehend leeren Festplatten kann der tatsächliche Bedarf geringer sein. Das OVA-Archiv wird als unkomprimiertes TAR erstellt, während die temporären VMDK-Dateien noch vorhanden sind. Planen Sie daher Platz für beides ein. Geht der Platz während des Exports aus, räumt der EXIT-Handler das temporäre Verzeichnis auf und Sie müssen neu beginnen."
},
"package": {
"heading": "Was im Paket landet",
"intro": "Für eine OVA / OVF namens <code>myvm-100-2026-04-26_18-30-15</code>:",
"code": "# OVA mode (single .ova file is a TAR of):\nmyvm-100-2026-04-26_18-30-15.ovf # XML descriptor (DMTF OVF 1.0 + RASD + VSSD)\nmyvm-100-2026-04-26_18-30-15.mf # SHA1 manifest\nmyvm-100-2026-04-26_18-30-15-disk0.vmdk\nmyvm-100-2026-04-26_18-30-15-disk1.vmdk\n...\n\n# OVF mode (a directory):\nmyvm-100-2026-04-26_18-30-15-ovf/\n├── myvm-100-2026-04-26_18-30-15.ovf\n├── myvm-100-2026-04-26_18-30-15.mf\n├── myvm-100-2026-04-26_18-30-15-disk0.vmdk\n└── myvm-100-2026-04-26_18-30-15-disk1.vmdk"
},
"exported": {
"heading": "Was exportiert wird",
"items": [
"<strong>Festplatten:</strong> Alle Einträge <code>scsi*</code>, <code>sata*</code>, <code>virtio*</code> und <code>ide*</code> in der VM-Konfiguration werden in VMDK im Format streamOptimized konvertiert.",
"<strong>vCPU-Anzahl</strong> (RASD ResourceType 3) und <strong>Arbeitsspeicher</strong> in MiB (ResourceType 4).",
"<strong>Anzahl der Netzwerkkarten</strong> (ResourceType 10, nur die Anzahl, nicht Bridge oder Modell).",
"<strong>VM-Name</strong> und ein Hinweis auf den Betriebssystemtyp."
],
"notTitle": "Was nicht exportiert wird",
"notItems": [
"CD-ROM- und ISO-Mounts (bewusst ausgeschlossen).",
"Cloud-init-Laufwerke (bewusst ausgeschlossen).",
"Die konkrete Bridge und das Modell der Netzwerkkarte (nur die Anzahl bleibt erhalten).",
"BIOS- / UEFI-Auswahl, die beim Import neu festgelegt werden muss.",
"Konfiguration der PCI-Durchreichung.",
"Snapshots - nur der aktuelle Zustand wird erfasst.",
"Optionen auf VM-Ebene (NUMA, hugepages, hotplug, …)."
]
},
"conversion": {
"heading": "Plattenumwandlung",
"intro": "Jede Festplatte wird konvertiert mit:",
"code": "qemu-img convert -p -O vmdk -o subformat=streamOptimized \\\n \"$source_path\" \\\n \"$work_dir/<base_name>-disk<N>.vmdk\"",
"outro": "<code>streamOptimized</code> ist ein in einem Durchlauf lesbares VMware-Format, das von ESXi 6.7+, VMware Workstation, VirtualBox und Proxmox selbst unterstützt wird. Es ist das am breitesten unterstützte VMDK-Unterformat und eignet sich für portable VMs. Der Nachteil: Es bietet keinen wahlfreien Zugriff und kann deshalb ohne Umwandlung nicht direkt eingebunden werden."
},
"manifest": {
"heading": "SHA1-Manifest",
"intro": "Jedes Paket enthält eine <code>.mf</code>-Datei mit SHA1-Hashes des OVF-Deskriptors und jedes VMDK:",
"code": "SHA1(myvm-100-2026-04-26_18-30-15.ovf)= 3a7bd3e2360a3d29eea436fcfb7e44c735d117c9\nSHA1(myvm-100-2026-04-26_18-30-15-disk0.vmdk)= b7e23ec29af22b0b4e41da31e868d57226121c84\nSHA1(myvm-100-2026-04-26_18-30-15-disk1.vmdk)= a87ff679a2f3e71d9181a67b7542122c",
"outro": "In der OVF-Spezifikation ist das Manifest optional; viele Importprogramme ignorieren es. Es hilft jedoch zu prüfen, ob das Paket unbeschädigt übertragen wurde. Prüfen Sie es manuell mit <code>sha1sum -c file.mf</code>."
},
"import": {
"heading": "Importieren des Ergebnisses",
"intro": "Das exportierte Paket kann in folgende Systeme importiert werden:",
"items": [
{
"href": "/docs/utils/import-vm",
"preRich": "<strong>Proxmox</strong> — verwenden Sie das zugehörige Werkzeug ",
"linkLabel": "VM von OVA / OVF importieren",
"tailRich": "."
},
{
"tailRich": "<strong>VMware ESXi</strong> — Datacenter → Deploy OVF Template; wählen Sie die .ova- oder .ovf-Datei aus."
},
{
"tailRich": "<strong>VMware Workstation / Fusion</strong> — Datei → Öffnen, wählen Sie .ova oder .ovf."
},
{
"tailRich": "<strong>VirtualBox</strong> — Datei → Appliance importieren, .ova oder .ovf auswählen."
}
]
},
"troubleshoot": {
"heading": "Fehlerbehebung",
"noSpaceTitle": "qemu-img convert bricht während der Umwandlung mit \"No space left on device\" ab",
"noSpaceBody": "Am Ziel ist kein Speicherplatz mehr frei. Der EXIT-Handler räumt das temporäre Verzeichnis automatisch auf. Wählen Sie ein Ziel mit mehr freiem Platz (siehe Faustregel oben) und führen Sie den Export erneut aus.",
"unsupportedHwTitle": "Der Export ist abgeschlossen, aber VMware verweigert den Import mit \"Unsupported hardware family\"",
"unsupportedHwBody": "Einige ESXi-Versionen lehnen OVF-Deskriptoren ab, deren Hardwarefamilie sie nicht erkennen. Öffnen Sie die .ovf-Datei in einem Texteditor oder entpacken Sie zuerst die .ova-Datei. Suchen Sie <code>&lt;vssd:VirtualSystemType&gt;</code> und ändern Sie den Wert auf einen von ESXi akzeptierten Wert, etwa <code>vmx-13</code> für ESXi 6.5+. Als schnelle Umgehung können Sie VirtualBox ausprobieren, das weniger streng prüft.",
"nicTitle": "Die importierte VM verwendet eine andere Netzwerkkarte oder einen anderen SCSI-Controller",
"nicBody": "Die OVF-Datei übernimmt die Anzahl der Netzwerkkarten, nicht deren ursprüngliches Modell. Prüfen Sie die Netzwerkeinstellungen der importierten VM im Zielhypervisor. Für die VMware-Kompatibilität deklariert der Export einen lsilogic-SCSI-Controller. Beim Rückimport in Proxmox können Sie <code>VirtIO SCSI</code> auswählen, wenn der Gast passende Treiber besitzt.",
"runningTitle": "Die VM lief und ich habe das Herunterfahren abgelehnt: Export abgebrochen",
"runningBody": "Das Skript kann kein konsistentes Abbild erstellen, während auf die Festplatten geschrieben wird. Bestätigen Sie beim nächsten Mal das Herunterfahren oder fahren Sie die VM zuvor manuell herunter (<code>qm shutdown $VMID</code>) und starten Sie den Export erneut.",
"slowTitle": "Die Festplattenumwandlung ist langsam",
"slowBody": "<code>qemu-img convert</code> arbeitet mit einem Thread und liest die Quelle mit voller Geschwindigkeit. Rechnen Sie bei einer 100-GB-Festplatte auf einer mechanischen Festplatte mit 15–30 Minuten. Von NVMe zu NVMe geht es 5–10-mal schneller. Die Festplatten einer VM werden nacheinander umgewandelt; die Dauer wächst linear mit der gesamten virtuellen Größe."
},
"related": {
"heading": "Verwandte Themen",
"items": [
{
"href": "/docs/utils/import-vm",
"label": "VM aus OVA / OVF importieren",
"tail": " — das passende Werkzeug für den Rückimport."
},
{
"href": "/docs/utils",
"label": "Übersicht der Dienstprogramme",
"tail": " — zurück zur Abschnittsübersicht."
}
]
}
}
+218
View File
@@ -0,0 +1,218 @@
{
"meta": {
"title": "VM aus OVA / OVF importieren | ProxMenux-Dokumentation",
"description": "Importieren Sie eine VM aus VMware ESXi / Workstation / Fusion / VirtualBox / ProxMenux in Proxmox VE. Entpackt OVA automatisch, liest OVF-Metadaten, erstellt die VM und importiert jede Festplatte in das native Speicherformat (qcow2 / raw).",
"ogTitle": "VM aus OVA / OVF importieren | ProxMenux-Dokumentation",
"ogDescription": "Importieren Sie VMs aus VMware-, VirtualBox- oder ProxMenux-Exporten in Proxmox. Festplatten werden automatisch in das native Speicherformat umgewandelt."
},
"header": {
"title": "VM von OVA / OVF importieren",
"description": "Importiert ein OVA / OVF-Paket in Proxmox VE: extrahiert OVA-Archive, analysiert den OVF-Deskriptor für vCPU / Speicher / NIC Anzahl und Festplattenreferenzen, erstellt dann die VM und importiert jede Festplatte über qm importdisk in den ausgewählten Speicher. Kompatibel mit Exporten von VMware (ESXi / Workstation / Fusion), VirtualBox und ProxMenux selbst.",
"section": "Dienstprogramme"
},
"intro": {
"title": "Was das macht",
"body": "Erstellt eine vollständige VM in Proxmox aus einem portablen Paket. Nach dem Import ist die VM startbereit. Für Leistung und Kompatibilität sollten Sie Netzwerkkartenmodell, Firmware und Betriebssystemtyp anschließend prüfen und anpassen."
},
"picker": {
"heading": "Dateiauswahl",
"intro": "Beim Start bietet das Skript zwei voreingestellte Verzeichnisse oder einen manuellen Pfad:",
"items": [
"<code>/var/lib/vz/dump</code> — das Standardverzeichnis Proxmox vzdump Backup.",
"<code>/var/lib/vz/template/iso</code> — sinnvoll, wenn Sie die OVA-Datei per sftp dorthin übertragen haben.",
"Manueller Pfad - für OVA / OVF-Dateien an anderer Stelle auf dem Host."
],
"outro": "Es listet dann jede <code>.ova</code>- und <code>.ovf</code>-Datei im ausgewählten Verzeichnis auf.",
"imageAlt": "Dateiauswahldialog für den VM-Import"
},
"flow": {
"heading": "Wie der Import funktioniert",
"nodes": [
{
"label": "OVA-/OVF-Eingabe",
"detail": ".ova → tar xf nach\n /tmp/.proxmenux-import-*\n.ovf → direkt verwenden",
"variant": "source"
},
{
"label": "Analyse und Dialoge",
"detail": "AWK liest OVF\n(Name, vCPU, RAM, NICs,\nFestplatten). Auswahl von\nVMID / Speicher / Bridge",
"variant": "bridge"
},
{
"label": "qm create + importdisk",
"detail": "qm create $VMID\nqm importdisk\n(VMDK → Speicherformat)\nqm set --scsiN",
"variant": "target"
}
]
},
"ovf": {
"heading": "OVF-Analyse",
"intro": "Ein <strong>gawk</strong>-Parser liest den OVF-Deskriptor und zieht die VM-Metadaten heraus. Der Parser verwendet die 3-Argumentform von <code>match()</code>, die gawk-spezifisch ist (mawk - die Standard-<code>awk</code> auf Debian / Proxmox - unterstützt sie nicht). Beim ersten Import installiert das Skript automatisch Gawk über das kanonische <code>ensure_repositories</code> + <code>install_single_package</code>-Paar, wenn es fehlt; nachfolgende Importe beginnen sofort. Felder extrahiert:",
"headerField": "Feld",
"headerSource": "Quelle in OVF",
"headerDefault": "Standardwert bei fehlendem Feld",
"rows": [
{
"field": "VM-Name",
"source": "<Name> (erster Treffer)",
"default": "imported-vm"
},
{
"field": "vCPU Anzahl",
"source": "RASD ResourceType 3 → VirtualQuantity",
"default": "1"
},
{
"field": "Speicher (MiB)",
"source": "RASD ResourceType 4 → VirtualQuantity",
"default": "1024"
},
{
"field": "NIC-Zahl",
"source": "Anzahl ResourceType 10",
"default": "1"
},
{
"field": "OS-Typ",
"source": "/Linux/ oder /Windows/ in der Beschreibung",
"default": "other"
},
{
"field": "Plattenreferenzen",
"source": "href Attribute enden mit .vmdk / .qcow2 / .img / .raw",
"default": "Keine (Import wird abgebrochen)"
}
]
},
"memWarn": {
"title": "Mehrdeutigkeit der Speichereinheit",
"body": "Der Parser rechnet erkannte Speichereinheiten in <strong>MiB</strong> um, darunter Bytes, KiB, MiB, GiB und unterstützte Textbezeichnungen. Fehlende oder unbekannte Einheiten werden <em>als MiB behandelt</em>. Vergleichen Sie nach dem Import <code>qm config $VMID | grep memory</code> mit dem dokumentierten RAM der Quell-VM und korrigieren Sie ihn bei Bedarf mit <code>qm set $VMID --memory &lt;MiB&gt;</code>."
},
"dialog": {
"heading": "Importdialogfluss",
"items": [
"<strong>VMID</strong> — vorgeschlagen wird die nächste freie ID (<code>pvesh get /cluster/nextid</code>).",
"<strong>VM-Name</strong> — voreingestellt ist der aus OVF gelesene Name; Sie können ihn ändern.",
"<strong>Zielspeicher</strong> — Auswahl aller Speicher mit dem Inhaltstyp <code>images</code>, ermittelt mit <code>pvesm status -content images</code>.",
"<strong>Netzwerk-Bridge</strong> — Auswahl der Bridges aus <code>ip link show type bridge</code>. Bei nur einer wird sie automatisch gewählt; der Standard ist <code>vmbr0</code>.",
"<strong>Bestätigung</strong> — zusammenfassender Dialog mit VMID, Name, vCPU, Speicher, NICs, Speicher, Bridge und der Liste der zu importierenden Festplatten. Abbrechen hier = nichts ändert sich."
]
},
"create": {
"heading": "VM Erstellung",
"intro": "Nach der Bestätigung läuft das Skript:",
"code": "qm create $VMID \\\n --name \"$NAME\" \\\n --memory $MEMORY \\\n --cores $VCPU \\\n --ostype $OSTYPE \\\n --scsihw lsi \\\n --net0 e1000,bridge=$BRIDGE\n\n# For each additional NIC:\nqm set $VMID --netN e1000,bridge=$BRIDGE",
"outro": "SCSI-Controller ist standardmäßig <code>lsi</code> (LSI Logic) für VMDK-Kompatibilität. NICs standardmäßig <code>e1000</code> (universelle Kompatibilität) auf der gewählten Brücke."
},
"diskLoop": {
"heading": "Ablauf des Festplattenimports",
"intro": "Für jede Plattenreferenz im OVF:",
"items": [
"<code>qm importdisk $VMID $disk_path $STORAGE</code> — importiert die Festplatte in einem vom Zielspeicher unterstützten Format und erstellt einen Eintrag <code>unusedN:</code> in der VM-Konfiguration.",
"Das Skript sucht mit grep nach dem gerade erstellten Verweis <code>unusedN</code> in der Konfiguration.",
"<code>qm set $VMID --scsiN $unused_disk</code> — verbindet die Festplatte als <code>scsi0</code>, <code>scsi1</code>, ...",
"<code>qm set $VMID --delete unusedN</code> — löscht den jetzt redundanten unbenutzten Marker."
],
"outro": "Der Start wird auf die erste SCSI-Festplatte gesetzt: <code>qm set $VMID --boot c --bootdisk scsi0</code>."
},
"postImport": {
"heading": "Empfohlene Anpassungen nach dem Import",
"intro": "Der Import verwendet bewusst breit kompatible Einstellungen, damit die VM möglichst beim ersten Versuch startet. Sobald Sie den erfolgreichen Start bestätigt haben, können Sie über die Proxmox-Oberfläche oder CLI bessere Einstellungen wählen:",
"headerSetting": "Einstellung",
"headerDefault": "Standard nach dem Import",
"headerRecommended": "Empfohlen (wenn Gast unterstützt)",
"rows": [
{
"setting": "NIC-Modell",
"default": "e1000",
"recommended": "VirtIO (deutlich schneller, benötigt Treiber im Gastsystem)"
},
{
"setting": "SCSI-Controller",
"default": "LSI",
"recommended": "VirtIO SCSI single (modernes Linux oder Windows mit VirtIO-Treibern)"
},
{
"setting": "Firmware (BIOS / UEFI)",
"default": "Proxmox-Standard (BIOS)",
"recommended": "Firmware der Quell-VM übernehmen; bei Abweichungen kann der Start scheitern"
},
{
"setting": "QEMU Gastagent",
"default": "Ausgeschaltet",
"recommendedRich": "Aktivieren und <code>qemu-guest-agent</code> im Gast installieren (bessere Sicherungen und IP-Meldung)"
},
{
"setting": "OS-Typ",
"default": "l26 / win10 / other (heuristisch)",
"recommended": "Überprüfen Sie das tatsächliche Gast-Betriebssystem"
},
{
"setting": "Anzeige",
"default": "Standard",
"recommended": "VirtIO-GPU oder SPICE (bessere Konsolenleistung)"
}
]
},
"fwWarn": {
"title": "Firmware-Mismatch = kein Boot",
"body": "Wenn die Quelle VM UEFI war, Proxmox sie jedoch als BIOS erstellt (oder umgekehrt), findet der Gast keine bootfähige Festplatte. Überprüfen Sie die Einstellungen des OVF oder des ursprünglichen VM für <em>FirmwareType / Firmware</em> und stellen Sie dasselbe in Proxmox ein: <code>qm set $VMID --bios ovmf</code> für UEFI; Standard ist <code>seabios</code> für BIOS."
},
"notImported": {
"heading": "Was nicht importiert wird",
"items": [
"<strong>Konkrete Netzwerk-Bridges</strong> — nur die Anzahl der Netzwerkkarten. Alle verwenden die beim Import ausgewählte Bridge.",
"<strong>Netzwerkkartenmodell</strong> — voreingestellt ist e1000.",
"<strong>BIOS / UEFI-Firmware Typ</strong> — Standard auf Proxmox Standard (BIOS).",
"<strong>Konfiguration der PCI-Durchreichung</strong>.",
"<strong>TPM</strong> (vTPM).",
"<strong>Cloud-init</strong>-Laufwerke.",
"<strong>Snapshots</strong> — nur der aktuelle Zustand.",
"<strong>USB / serielle / parallele Geräte</strong> deklariert im OVF.",
"<strong>VM Tags / Notizen / Start-on-Boot</strong> Optionen."
]
},
"troubleshoot": {
"heading": "Fehlerbehebung",
"orphanTitle": "VM erstellt, aber Festplattenimport fehlgeschlagen: teilweise VM bleibt zurück",
"orphanIntro": "Bei fehlgeschlagenem Import bietet das Skript an, die teilweise erstellte VM und ihre importierten Festplatten zu entfernen. Haben Sie abgelehnt oder ist die automatische Löschung fehlgeschlagen, prüfen Sie die VM und entfernen Sie sie manuell mit:",
"orphanCode": "qm destroy $VMID --destroy-unreferenced-disks 1",
"orphanOutro": "Beheben Sie dann die zugrunde liegende Ursache (wahrscheinlich Speicherplatz auf dem Zielspeicher) und importieren Sie erneut.",
"memTitle": "Importierte VM hat 8 MB RAM (oder 8 TB)",
"memIntro": "Der Parser rechnet erkannte AllocationUnits in MiB um. Fehlende oder unbekannte Einheiten behandelt er als MiB. Prüfen Sie die OVF-Datei und vergleichen Sie den importierten Wert mit der Quell-VM. Korrigieren Sie den Arbeitsspeicher bei Bedarf:",
"memCode": "qm set $VMID --memory 8192 # 8 GiB",
"bootTitle": "Importierte VM startet nicht: \"No bootable device\"",
"bootIntro": "Häufige Ursache: BIOS und UEFI passen nicht zusammen. Die Quell-VM verwendete UEFI, wurde in Proxmox aber mit BIOS erstellt. Stellen Sie die passende Firmware ein:",
"bootCode": "qm set $VMID --bios ovmf # UEFI\n# also add an EFI disk for the EFI vars:\nqm set $VMID --efidisk0 $STORAGE:1,format=qcow2,efitype=4m,pre-enrolled-keys=1",
"bootOutro": "Eine weitere häufige Ursache: Die Startreihenfolge verweist auf scsi0, das Betriebssystem liegt aber auf scsi1. Ändern Sie die Startreihenfolge unter den VM-Optionen.",
"bsodTitle": "Aus VMware exportierte Windows-VM zeigt beim ersten Start einen Bluescreen",
"bsodBody": "Windows reagiert empfindlich auf einen Wechsel des Festplattencontrollers. Installieren Sie entweder VirtIO-Treiber <em>vor</em> dem Export aus VMware oder behalten Sie zunächst den Standardcontroller <code>lsi</code>. Wechseln Sie erst nach erfolgreichem Gaststart und Installation der VirtIO-Treiber in Windows zu VirtIO SCSI.",
"zeroTitle": "OVF-Parser meldet 0 Festplatten",
"zeroBody": "Die OVF-Datei kann Festplattenverweise verwenden, die der Parser nicht erkennt. Öffnen Sie sie und suchen Sie für jede Festplatte einen Eintrag <code>&lt;File ovf:href=\"...vmdk\" ...&gt;</code>. Ist die Festplatte tatsächlich VMDK, hat aber eine ungewöhnliche Endung wie <code>.dat</code>, benennen Sie sie in <code>.vmdk</code> um und passen Sie den OVF-Verweis an. Umbenennen wandelt das Format nicht um.",
"awkTitle": "awk: Syntaxfehler bei oder nahe , — Parser schlägt bei jedem OVA / OVF fehl",
"awkIntro": "Der OVF-Parser verwendet gawk-spezifische Syntax: <code>match()</code> mit drei Argumenten. mawk, das standardmäßige <code>awk</code> unter Debian / Proxmox, unterstützt sie nicht. Aktuelle Skriptversionen installieren gawk beim ersten Einsatz automatisch über <code>ensure_repositories</code> + <code>install_single_package</code>. Bei einer älteren Kopie installieren Sie es manuell:",
"awkCode": "apt-get install -y gawk",
"awkOutro": "Dann führen Sie den Import erneut durch.",
"netTitle": "Netzwerk funktioniert nicht nach dem ersten Booten",
"netBody": "Das Netzwerkkartenmodell e1000 in Proxmox passt möglicherweise nicht zu den Gasttreibern, oder die gewählte Bridge ist falsch. Ändern Sie in der Hardwareansicht der VM das Modell unter Network Device → Model. Prüfen Sie außerdem <code>ip a</code> im Gast: Die Schnittstelle kann anders heißen, etwa ens18 statt eth0, während die Netzwerkkonfiguration noch den alten Namen verwendet."
},
"files": {
"heading": "Beteiligte Dateien",
"code": "scripts/utilities/import_vm_ova_ovf.sh # this script\n/tmp/.proxmenux-import-*/ # temp extraction dir for OVA\n/etc/pve/nodes/<node>/qemu-server/<vmid>.conf # created by qm create\n<storage>/<vmid>/<vmid>-disk-<n>.<fmt> # disk images, format depends on storage"
},
"related": {
"heading": "Verwandte Themen",
"items": [
{
"href": "/docs/utils/export-vm",
"label": "VM nach OVA / OVF exportieren",
"tail": " — das passende Werkzeug für den Export."
},
{
"href": "/docs/utils",
"label": "Übersicht der Dienstprogramme",
"tail": " — zurück zur Abschnittsübersicht."
}
]
}
}
+115
View File
@@ -0,0 +1,115 @@
{
"meta": {
"title": "Proxmox-Dienstprogramme — UUP Dump, Upgrade von PVE 8 auf 9, OVA-Export/-Import | ProxMenux",
"description": "Dienstprogramme für den Proxmox-VE-Alltag: Windows-ISOs mit UUP Dump erstellen, ausgewählte CLI-Werkzeuge installieren, das Proxmox-System sicher aktualisieren, das Versionsupgrade von PVE 8 auf PVE 9 durchführen sowie VMs als OVA / OVF exportieren und aus VMware oder VirtualBox importieren.",
"ogTitle": "Proxmox-Dienstprogramme — UUP Dump, Upgrade von PVE 8 auf 9, OVA-Export/-Import",
"ogDescription": "Erstellen Sie Windows ISOs, installieren Sie CLI-Tools, führen Sie ein sicheres Update aus, aktualisieren Sie PVE 8 auf PVE 9, exportieren / importieren Sie OVA / OVF-VMs.",
"twitterTitle": "Proxmox Dienstprogramme | ProxMenux",
"twitterDescription": "ISO-Erstellung, CLI-Werkzeuge, Proxmox-Aktualisierung, Upgrade PVE 8→9, portable VMs im OVA- / OVF-Format."
},
"header": {
"title": "Dienstprogramme und Werkzeuge",
"description": "Sechs Werkzeuge ergänzen den täglichen Proxmox-VE-Arbeitsablauf: ISO-Erstellung, Systemwartung und portable VMs. Jede Option ist unabhängig. Wählen Sie die benötigte aus; erst auf Ihre Anforderung wird etwas installiert.",
"section": "Dienstprogramme"
},
"intro": {
"title": "Wofür dieses Menü ist",
"body": "Drei Gruppen unabhängiger, aber häufig benötigter Werkzeuge: <strong>eine Windows-ISO erstellen</strong> mit UUP Dump, <strong>den Proxmox-Host warten</strong> (CLI-Werkzeuge, Aktualisierungen und Versionsupgrade) und <strong>VMs importieren und exportieren</strong> mit dem Standardformat OVA / OVF."
},
"opening": {
"heading": "Öffnen des Menüs",
"body": "Wählen Sie im Hauptmenü von ProxMenux <strong>Utilities</strong>. Sie werden sehen:",
"imageAlt": "Dienstprogrammmenü mit UUP Dump, Systemwerkzeugen, Aktualisierung, Versionsupgrade, Export und Import"
},
"groups": {
"heading": "Drei Werkzeuggruppen",
"intro": "Die sechs Werkzeuge fallen in drei unabhängige Gruppen. Klicken Sie auf eine Karte unten, um zum passenden Abschnitt zu springen.",
"iso": {
"title": "ISO-Erstellung",
"body": "Erstellen Sie offizielle Windows ISOs von UUP Dump auf dem Proxmox-Host selbst.",
"bullets": [
"Freigabelink von UUP Dump → bootfähige ISO",
"Abhängigkeiten automatisch installiert",
"Das Ergebnis wird im ISO-Vorlagenverzeichnis von Proxmox gespeichert"
]
},
"maintenance": {
"title": "Systemwartung",
"body": "Halten Sie den Host in gutem Zustand: mit CLI-Werkzeugen, regelmäßigen Aktualisierungen und dem Versionsupgrade, wenn es ansteht.",
"bullets": [
"Installationsprogramm für Systemwerkzeuge (25 CLI-Werkzeuge)",
"Proxmox-Systemaktualisierung (apt + dist-upgrade)",
"Versionsupgrade PVE 8 → PVE 9"
]
},
"portability": {
"title": "VM Portabilität",
"body": "Bewegen Sie VMs in und aus Proxmox mit dem Standard-OVA / OVF-Format.",
"bullets": [
"Proxmox-VM exportieren → OVA / OVF",
"OVA / OVF importieren → Proxmox-VM",
"Kompatibel mit VMware und VirtualBox"
]
}
},
"upgradeWarn": {
"title": "Das PVE 8 → 9 Upgrade ist destruktiv und nicht reversibel",
"body": "Ein Versionsupgrade ersetzt die Debian-Basis (Bookworm → Trixie) und die Proxmox-Komponenten direkt im bestehenden System. Es gibt keinen Rückweg. Sie benötigen vor dem Start <strong>geprüfte Sicherungen</strong> aller VMs und CTs sowie <strong>Zugriff über Konsole / IPMI / iKVM</strong>. Deshalb verweigert das Upgrade-Werkzeug die Ausführung im Proxmox-Webterminal."
},
"isoSection": {
"heading": "ISO-Erstellung",
"body": "Erstellen Sie direkt auf dem Proxmox-Host eine neue, aktuelle Windows-Installations-ISO. Das Skript automatisiert den gesamten UUP-Dump-Ablauf: Installation der Abhängigkeiten (aria2c, cabextract, wimlib-imagex, …), paralleler Download der Aktualisierungsdateien mit aria2 und Umwandlung in eine bootfähige ISO. Diese wird unter <code>/var/lib/vz/template/iso</code> gespeichert und kann einer VM zugewiesen werden.",
"options": [
{
"title": "UUP-Dump-ISO-Erstellung",
"description": "Erstellen Sie eine aktuelle Windows-Installations-ISO über einen Freigabelink von UUP Dump. Abhängigkeiten, Download und Umwandlung werden vollständig automatisch abgewickelt. Die fertige ISO wird unter /var/lib/vz/template/iso für die VM-Erstellung gespeichert.",
"href": "/docs/utils/UUp-Dump-ISO-Creator"
}
]
},
"maintenanceSection": {
"heading": "Systemwartung",
"body": "Drei Werkzeuge decken tägliche und gelegentliche Arbeiten am Host ab. Das <strong>Installationsprogramm für Systemwerkzeuge</strong> richtet die nach einer Neuinstallation benötigten CLI-Werkzeuge ein. Die <strong>Proxmox-Systemaktualisierung</strong> dient der wöchentlichen oder monatlichen Wartung. Das <strong>Upgrade von PVE 8 auf PVE 9</strong> ist der große Wechsel beim nächsten Hauptversionszyklus. Zusätzliche Sicherheitsprüfungen sind vorgesehen, weil er nicht rückgängig gemacht werden kann.",
"options": [
{
"title": "Installationsprogramm für Systemdienstprogramme",
"description": "Auswahl von 25 bewährten CLI-Werkzeugen (htop, btop, iperf3, jq, tmux, ncdu, ...) mit individueller Auswahl oder vordefinierten Gruppen (Basis, Entwicklung, Komprimierung, Multiplexer, Analyse, Netzwerk). Verwendet den standardisierten Ablauf mit Repository und Prüfbefehl.",
"href": "/docs/utils/system-utils"
},
{
"title": "Proxmox-Systemupdate",
"description": "Repository-Prüfung + apt update + apt dist-upgrade mit Rückfrage vor dem Neustart. Erkennt die PVE-Hauptversion (8 oder 9), behält die konfigurierten Repositories bei und fragt nach, bevor ein Host ohne Abonnement auf das no-subscription-Repository umgestellt wird. Anschließend wird autoremove ausgeführt.",
"href": "/docs/utils/system-update"
},
{
"title": "Aktualisieren Sie PVE 8 auf PVE 9",
"description": "Versionsupgrade (Debian Bookworm → Trixie + PVE 8 → 9). Vorabprüfungen, Repository-Migration, automatischer oder interaktiver Modus, Prüfung nach dem Upgrade und Neustart. Verweigert die Ausführung im Webterminal.",
"href": "/docs/utils/upgrade-pve8-pve9"
}
]
},
"portabilitySection": {
"heading": "VM Portabilität (OVA / OVF)",
"body": "OVA und OVF sind hypervisorübergreifende Paketformate des DMTF-Standards, die von VMware, VirtualBox und Proxmox unterstützt werden. Die beiden Werkzeuge ermöglichen Export und Rückimport: Eine aus Proxmox exportierte VM lässt sich wieder importieren und umgekehrt. Damit können Sie Arbeitslasten von ESXi migrieren, eine portable VM-Sicherung erstellen oder eine vorbereitete VM mit jemandem teilen, der VirtualBox nutzt.",
"options": [
{
"title": "VM nach OVA / OVF exportieren",
"description": "Wandeln Sie eine Proxmox-VM in ein portables OVA-Archiv oder OVF-Verzeichnis um. DMTF-Standardschema, SHA1-Manifest, VMDK-Festplatten im Format streamOptimized. Importierbar in VMware (ESXi / Workstation / Fusion), VirtualBox und wieder in Proxmox.",
"href": "/docs/utils/export-vm"
},
{
"title": "VM von OVA / OVF importieren",
"description": "Importieren Sie einen Export aus VMware / VirtualBox / ProxMenux in Proxmox. Das Werkzeug entpackt OVA automatisch, liest die OVF-Metadaten, erstellt die VM und importiert jede Festplatte in das native Format des Speichers.",
"href": "/docs/utils/import-vm"
}
]
},
"diskSpaceCallout": {
"title": "Eine Notiz zum Speicherplatz für den Export / Import",
"body": "Beide Werkzeuge wandeln Festplattenformate um: Der Export verwendet <code>qemu-img convert -O vmdk -o subformat=streamOptimized</code>, der Import <code>qm importdisk</code> für die Rückwandlung in das native Speicherformat (qcow2 / raw). Planen Sie für den Export <strong>~120% der virtuellen Festplattengröße</strong> für OVF und <strong>~220%</strong> für OVA ein. Das OVA-Archiv wird als unkomprimiertes TAR erstellt, während die temporären VMDK-Dateien noch vorhanden sind. Prüfen Sie vor dem Start, ob im Zielverzeichnis ausreichend Platz frei ist."
},
"fitsTogether": {
"heading": "Wie das Menü zusammenpasst",
"body": "Jedes Werkzeug hat ein eigenes Skript unter <code>scripts/utilities/</code>. Die Proxmox-Systemaktualisierung ruft ein einziges Arbeitsskript unter <code>scripts/global/</code> auf: update-pve-safe.sh erkennt die Hauptversion und verarbeitet PVE 8 und PVE 9. Das Upgrade PVE 8 → 9 bietet im eigenen Menü zwei weitere Aktionen: eine eigenständige <em>Prüfung vor dem Upgrade</em> (führt <code>pve8to9 --full</code> aus) und eine schreibgeschützte <em>Anleitung für das manuelle Upgrade</em> (17 Schritte). Damit können Benutzer den Ablauf prüfen oder von Hand ausführen."
}
}
@@ -0,0 +1,168 @@
{
"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 (<code>update-pve-safe.sh</code>) 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 <em>Update Now</em> 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 <strong>kein</strong> Upgrade auf eine andere Hauptversion durch. Für PVE 8 → PVE 9 siehe <link>Upgrade von PVE 8 auf PVE 9</link>."
},
"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 <strong>denselben Vorgang apt full-upgrade</strong>, ergänzt um Repository-Prüfungen, DKMS-Neubau und anschließende Bereinigung. Die folgenden Schritte entsprechen <code>scripts/utilities/proxmox_update.sh</code> und seinem einzigen Arbeitsskript <code>scripts/global/update-pve-safe.sh</code>:",
"items": [
"<strong>Erkennt die PVE-Hauptversion</strong> im Arbeitsskript (<code>pveversion | grep -oP ''pve-manager/\\K[0-9]+''</code>). Ein Skript verarbeitet PVE 8 und PVE 9. Die konfigurierten Repositories bleiben erhalten, sofern ein Host ohne Abonnement der angebotenen Umstellung nicht zustimmt.",
"<strong>Behält konfigurierte Repositories bei.</strong> <code>ensure_repositories</code> 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.",
"<strong>Führt die Aktualisierung ohne Interaktion aus</strong> mit <code>DEBIAN_FRONTEND=noninteractive</code> und <code>--force-confdef --force-confold</code>. Bei Entscheidungen zu dpkg-Konfigurationsdateien wird die Standardaktion gewählt, falls vorhanden; andernfalls bleibt die bestehende Datei erhalten.",
"<strong>Erzwingt keine optionalen Werkzeuge.</strong> Das Arbeitsskript installiert weder <code>zfsutils-linux</code> noch <code>chrony</code>, <code>ifupdown2</code> 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.",
"<strong>LVM-Metadatenprüfung und -reparatur.</strong> 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.",
"<strong>Bereinigt anschließend:</strong> <code>apt-get autoremove -y</code> + <code>apt-get autoclean -y</code>.",
"<strong>DKMS-Neubau vor der Neustartabfrage.</strong> Das Arbeitsskript ruft <code>pmx_rebuild_dkms_after_kernel</code> auf, wenn ein neuerer installierter Kernel bereitsteht. Das Hauptskript prüft <code>/var/run/reboot-required</code> und vergleicht mit <code>dpkg-query</code> den von <code>uname -r</code> gemeldeten Kernel mit dem neuesten installierten Paket <code>proxmox-kernel-*-pve-signed</code> / <code>pve-kernel-*-pve</code>. Auf Hosts ohne <code>needrestart</code> 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 (<code>scripts/global/update-pve-safe.sh</code>) verarbeitet PVE 8 (<code>bookworm</code>) und PVE 9 (<code>trixie</code>). Es erkennt die Hauptversion intern und prüft die bestehende Repository-Konfiguration, ohne die Debian-Basisquellen neu zu schreiben. Die Schritte sind:",
"items": [
"<strong>Vorabprüfungen.</strong> Prüft, ob mindestens ~1 GB in <code>/var/cache/apt/archives</code> frei ist. Bei zu wenig Platz wird frühzeitig mit einer klaren Meldung abgebrochen, damit der Vorgang nicht mitten in einer apt-Transaktion scheitert.",
"<strong>Repository-Prüfung.</strong> <code>ensure_repositories</code> 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.",
"<strong>apt update mit automatischer GPG-Wiederherstellung.</strong> Bei <code>NO_PUBKEY</code> für ein Repository, auch eines von Drittanbietern, importiert das Arbeitsskript den fehlenden Schlüssel und versucht es erneut, bevor es abbricht.",
"<strong>Ausstehende Aktualisierungen und Sicherheitsaktualisierungen.</strong> Zeigt an, wie viele Pakete geändert werden und wie viele davon aus der Sicherheitssuite stammen. Der Bestätigungsdialog enthält dadurch konkrete Zahlen.",
"<strong>Bestätigungsdialog.</strong> Nach dem Aktualisieren der Paketlisten verlangt das Arbeitsskript ein ausdrückliches Ja vor der Paketaktualisierung.",
"<strong>apt full-upgrade.</strong> Verwendet <code>DEBIAN_FRONTEND=noninteractive</code> und <code>--force-confdef --force-confold</code>. Dpkg folgt bei Entscheidungen zu Konfigurationsdateien seiner Standardaktion, falls vorhanden, und behält andernfalls die bestehende Datei bei.",
"<strong>LVM-Prüfung.</strong> <code>lvm_repair_check</code> aktualisiert VG-Metadaten, wenn an Gast-VMs (DSM, TrueNAS, Speicher-Appliances) durchgereichte Festplatten mit alten PV-Headern zurückkehren.",
"<strong>DKMS-Neubau für von ProxMenux verwaltete Treiber.</strong> Steht nach der Aktualisierung ein neuer Kernel bereit, liest <code>pmx_rebuild_dkms_after_kernel</code> die von ProxMenux installierten Treiber aus <code>components_status.json</code> (derzeit <code>nvidia_driver</code> → Modul <code>nvidia</code> und <code>coral_driver</code> → Modul <code>gasket</code>), installiert passende Kernel-Header (<code>proxmox-headers-&lt;newkver&gt;</code>, falls verfügbar, sonst <code>pve-headers-&lt;newkver&gt;</code>) und führt <code>dkms autoinstall -k &lt;newkver&gt;</code> aus. Zeigt <code>dkms status</code> die Module danach nicht für den neuen Kernel an, werden die jeweiligen Installationsprogramme mit <code>--auto-reinstall</code> erneut ausgeführt. Fehler werden protokolliert, brechen die Aktualisierung aber nicht ab; die Neustartabfrage wird dennoch erreicht.",
"<strong>Anschließende Bereinigung.</strong> <code>apt-get autoremove</code> + <code>apt-get autoclean</code>, 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": [
"<code>/var/run/reboot-required</code> existiert: Ein Paket oder Systemwerkzeug hat einen nötigen Neustart markiert.",
"Das neueste installierte Proxmox-Kernelpaket unterscheidet sich vom laufenden Kernel, ermittelt mit <code>dpkg-query</code> und uname -r."
],
"outro": "Trifft eines der Signale zu, fragt ein whiptail-Dialog <em>„Einige Änderungen erfordern einen Neustart. Möchten Sie jetzt neu starten?“</em>. 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 <code>proxmox-kernel-*</code> 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 <code>apt-get update</code> den Fehler 401. Nur in diesem Fall und nach Rückfrage ändert das Arbeitsskript die Repositories über die Proxmox-Repository-API, die auch hinter <em>Node → Updates → Repositories</em> steht. Die einzelnen Fälle:",
"items": [
"Mit <strong>aktivem Abonnement</strong> bleiben die Repositories unverändert und Enterprise liefert die Aktualisierungen.",
"Ist das <strong>no-subscription- oder Test-Repository bereits aktiviert</strong>, bleiben die Repositories unverändert, unabhängig von weiteren eingerichteten Quellen.",
"Bei <strong>fehlendem aktivem Abonnement und ausschließlich Enterprise-Repository</strong> 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 <em>Changes</em> von Audit & Report erfasst. Bei Ablehnung endet die Aktualisierung ohne Änderung einer Paketquelle.",
"Vorhandene <strong>Enterprise-Ceph-Quellen</strong> werden bei derselben Umstellung deaktiviert, ohne einen anderen Ceph-Kanal auszuwählen. Auf Hosts mit Ceph wird dessen Kanal separat konfiguriert.",
"Steht <strong>kein Terminal für die Rückfrage</strong> zur Verfügung, wird keine Paketquelle geändert. Die Aktualisierung endet mit einem Hinweis auf <em>Node → Updates → Repositories</em>."
],
"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 <strong>einem Knoten nach dem anderen</strong> 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": [
"<strong>Upgrade der Hauptversion.</strong> 8 → 9 ist ein eigener Vorgang; siehe <link>Upgrade von PVE 8 auf PVE 9</link>.",
"<strong>Backup.</strong> Keine Snapshots, kein Rollback. Apt Operationen sind nicht transaktional. Kombinieren Sie mit Ihrer normalen Backup-Disziplin (PBS, vzdump, ZFS Snapshots).",
"<strong>Aktualisierung von Containern / VMs.</strong> Nur der Host wird aktualisiert; die Gastsysteme bleiben unverändert.",
"<strong>Gezieltes Einspielen von Firmware.</strong> 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 <code>apt-get update</code> die Umstellung auf no-subscription an. Wurde sie abgelehnt, starten Sie die Aktualisierung erneut und stimmen Sie zu. Alternativ deaktivieren Sie Enterprise unter <em>Node → Updates → Repositories</em> 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. <code>--force-confold</code> gilt für Entscheidungen zu Konfigurationsdateien, nicht für diese Geräteauswahl. Wählen Sie mit <kbd>Tab</kbd> + <kbd>Space</kbd> die passenden Startfestplatten und dann OK. Die Auswahl lässt sich vorher mit <code>dpkg-reconfigure grub-pc</code> konfigurieren."
},
{
"title": "Kernel aktualisiert, aber die neuen Module fehlen für einen Out-of-Tree-Treiber",
"body": "Für verwaltete Treiber (<code>nvidia_driver</code> und <code>coral_driver</code>) führt die Hilfsfunktion <code>dkms autoinstall -k &lt;newkver&gt;</code> aus und kann deren Installationsprogramme mit <code>--auto-reinstall</code> erneut starten. Prüfen Sie das Ergebnis mit <code>dkms status</code>. Der autoinstall-Befehl kann auch andere registrierte DKMS-Module neu erstellen. Der erneute Installer-Aufruf beschränkt sich auf die verwalteten Einträge in <code>components_status.json</code>. Prüfen Sie weiterhin fehlende Drittanbietermodule und erstellen Sie sie bei Bedarf mit <code>dkms autoinstall</code> neu."
},
{
"title": "Die Neustartabfrage erschien nicht, obwohl ein neuer Kernel installiert wurde",
"body": "Die Signale gelten alternativ: <code>/var/run/reboot-required</code> 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 <code>uname -r</code> und die installierten Kernelpakete mit <code>dpkg-query</code>. Planen Sie einen nötigen Neustart oder führen Sie zum passenden Zeitpunkt <code>shutdown -r now</code> 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."
}
]
}
}
@@ -0,0 +1,252 @@
{
"meta": {
"title": "Installationsprogramm für Systemwerkzeuge | ProxMenux-Dokumentation",
"description": "CLI-Werkzeuginstallation für Proxmox VE mit 25 Paketen in der zentralen Liste (htop, btop, iperf3, tmux, ...). Individuelle Auswahl, Gesamtinstallation und vordefinierte Gruppen (Basis, Entwicklung, Komprimierung, Multiplexer, Analyse, Netzwerk). Gruppen können zusätzliche Pakete enthalten. Verwendet ensure_repositories + install_single_package.",
"ogTitle": "Installationsprogramm für Systemwerkzeuge | ProxMenux-Dokumentation",
"ogDescription": "Installieren Sie kuratierte CLI-Tools auf Proxmox VE mit einem Klick oder einer benutzerdefinierten Auswahl."
},
"header": {
"title": "Installationsprogramm für Systemdienstprogramme",
"description": "Auswahl der 25 CLI-Werkzeuge in der zentralen Liste PROXMENUX_UTILS. Bietet individuelle Auswahl, Gesamtinstallation, sechs vordefinierte Gruppen und eine Installationsprüfung. Gruppen können weitere Werkzeuge enthalten. Gemeinsame Hilfsfunktionen ensure_repositories() + install_single_package() sorgen für einheitliche Repository-Verwaltung und Paketmeldungen.",
"section": "Dienstprogramme"
},
"info": {
"title": "Was das macht",
"body": "Installiert CLI-Werkzeuge aus einer Liste mit 25 Paketen. Jede Installation verwendet denselben Ablauf: <code>ensure_repositories</code> prüft ein nutzbares Proxmox-Repository für die laufende PVE-Hauptversion; anschließend installiert <code>install_single_package</code> das Paket und prüft, ob dessen Befehl in PATH liegt."
},
"opening": {
"heading": "Installationsprogramm öffnen",
"intro": "Wählen Sie im Menü Utilities <strong>System Utilities Installer</strong>. Das Hauptmenü bietet neun Optionen:",
"imageAlt": "Menü System Utilities Installer mit benutzerdefinierter Auswahl, ALL, vordefinierten Gruppen und Verifizierung"
},
"actions": {
"heading": "Die 9 Menüaktionen",
"headerOption": "Option",
"headerBehaviour": "Verhalten",
"rows": [
{
"option": "1. Individuelle Auswahl",
"behaviourRich": "Auswahlliste aller 25 Pakete. Mit SPACE umschalten und mit ENTER bestätigen; nur ausgewählte Pakete werden installiert."
},
{
"option": "2. Alle Werkzeuge installieren",
"behaviourRich": "Installiert alle Pakete aus <code>PROXMENUX_UTILS</code> in einem Durchgang. Geeignet nach einer neuen Proxmox-Installation."
},
{
"option": "3. Grundlegend",
"behaviourRich": "<code>grc</code>, <code>htop</code>, <code>tree</code>, <code>curl</code>, <code>wget</code>"
},
{
"option": "4. Entwicklung",
"behaviourRich": "<code>git</code>, <code>vim</code>, <code>nano</code>"
},
{
"option": "5. Kompression",
"behaviourRich": "<code>zip</code>, <code>unzip</code>, <code>rsync</code>"
},
{
"option": "6. Terminalmultiplexer",
"behaviourRich": "<code>screen</code>, <code>tmux</code>"
},
{
"option": "7. Analyse",
"behaviourRich": "<code>jq</code>, <code>ncdu</code>, <code>iotop</code>"
},
{
"option": "8. Netz",
"behaviourRich": "<code>iperf3</code>, <code>nethogs</code>, <code>nmap</code>, <code>tcpdump</code>, <code>lsof</code>"
},
{
"option": "9. Installationen prüfen",
"behaviourRich": "Prüft für jeden Eintrag in <code>PROXMENUX_UTILS</code>, ob der zugehörige Prüfbefehl in PATH verfügbar ist, und zeigt eine Übersicht mit Verfügbar / Fehlend."
}
]
},
"packages": {
"heading": "Die 25 Pakete",
"intro": "In der gemeinsamen Datei <code>scripts/global/utils-install-functions.sh</code> als <code>PROXMENUX_UTILS</code> definiert (Format: <code>package:verify_command:description</code>). Andere ProxMenux-Skripte, etwa die Netzwerküberwachungsstarter für iftop / iptraf-ng / iperf3, verwenden diese Einträge ebenfalls, damit Paket und Prüfbefehl zusammenpassen.",
"headerPackage": "Paket",
"headerVerify": "Prüfbefehl",
"headerDescription": "Beschreibung",
"rows": [
{
"package": "axel",
"verify": "axel",
"description": "Downloadbeschleuniger"
},
{
"package": "aria2",
"verify": "aria2c",
"description": "Multisource-Downloader"
},
{
"package": "btop",
"verify": "btop",
"description": "Moderner Ressourcenmonitor"
},
{
"package": "cabextract",
"verify": "cabextract",
"description": "Extrahieren von CAB-Dateien"
},
{
"package": "chntpw",
"verify": "chntpw",
"description": "Bearbeiten der Windows-Registrierung / Passwörter"
},
{
"package": "dos2unix",
"verify": "dos2unix",
"description": "Konvertieren von DOS / Unix Textdateien"
},
{
"package": "genisoimage",
"verify": "genisoimage",
"description": "ISO-Images erstellen"
},
{
"package": "grc",
"verify": "grc",
"description": "Allgemeine farbige Hervorhebung von Protokollen"
},
{
"package": "htop",
"verify": "htop",
"description": "Interaktiver Prozess-Viewer"
},
{
"package": "iftop",
"verify": "iftop",
"description": "Echtzeit-Netzwerknutzung"
},
{
"package": "intel-gpu-tools",
"verify": "intel_gpu_top",
"description": "Intel GPU Werkzeuge"
},
{
"package": "iotop",
"verify": "iotop",
"description": "Festplatten-E/A überwachen"
},
{
"package": "iperf3",
"verify": "iperf3",
"description": "Prüfung der Netzwerkbandbreite"
},
{
"package": "ipset",
"verify": "ipset",
"description": "Verwalten von IP-Sets"
},
{
"package": "iptraf-ng",
"verify": "iptraf-ng",
"description": "Netzüberwachungsinstrument"
},
{
"package": "libguestfs-tools",
"verify": "virt-filesystems",
"description": "Werkzeuge für VM-Festplatten"
},
{
"package": "msr-tools",
"verify": "rdmsr",
"description": "Zugriff auf CPU-MSRs"
},
{
"package": "net-tools",
"verify": "netstat",
"description": "Ältere Netzwerkwerkzeuge"
},
{
"package": "plocate",
"verify": "locate",
"description": "Dateien schnell finden"
},
{
"package": "s-tui",
"verify": "s-tui",
"description": "Stress-Terminal UI"
},
{
"package": "sshpass",
"verify": "sshpass",
"description": "Nicht-interaktives SSH-Login"
},
{
"package": "tmux",
"verify": "tmux",
"description": "Terminal-Multiplexer"
},
{
"package": "unzip",
"verify": "unzip",
"description": "ZIP-Dateien extrahieren"
},
{
"package": "wimtools",
"verify": "wimlib-imagex",
"description": "Verwalten von WIM-Bildern"
},
{
"package": "zip",
"verify": "zip",
"description": "ZIP-Dateien erstellen"
}
]
},
"howItWorks": {
"heading": "Wie eine einzelne Paketinstallation funktioniert",
"items": [
"<code>ensure_repositories</code> erkennt PVE 8 oder 9 und liest die Repositories über die Proxmox-API. Bei einem nutzbaren Proxmox-Repository wird nichts geändert. Ein Host ohne aktives Abonnement, der nur Enterprise verwendet, wird vor der Umstellung auf no-subscription gefragt. Nach einer bestätigten Umstellung wird <code>apt-get update</code> ausgeführt.",
"<code>install_single_package \"pkg\" \"verify_cmd\" \"description\"</code> führt <code>apt-get install -y \"$pkg\"</code> mit Feedback aus (<code>msg_info</code> / <code>msg_ok</code> / <code>msg_error</code>)."
],
"verifyIntro": "Nach der Installation wird der Verifizierungsbefehl mit <code>command -v \"$verify_cmd\"</code> überprüft. Drei Ergebnisse:",
"verifyOutcomes": [
"<strong>0 (Erfolg): </strong> Befehl verfügbar, Paket gezählt als <em>Erfolgreich</em>.",
"<strong>1 (fehlgeschlagen):</strong> apt fehlgeschlagen, gezählt als <em>Failed</em>.",
"<strong>2 (Warnung):</strong> apt war erfolgreich, aber der erwartete Befehl wurde nicht in PATH gefunden. Das Paket zählt als <em>Mit Warnungen</em>."
],
"summary": "Nach einer Gruppeninstallation oder individuellen Installation zeigt ein Dialog die Anzahl <em>Erfolgreich / Mit Warnungen / Fehlgeschlagen</em>."
},
"verify": {
"heading": "Überprüfen Sie die Installationen",
"intro": "Option 9 liest nur: Sie durchläuft <code>PROXMENUX_UTILS</code> und führt für jeden Prüfbefehl <code>command -v</code> aus. Die Ausgabe sieht so aus:",
"code": "Total: 26\nAvailable: 18\nMissing: 8\n\n✓ axel - Download accelerator\n✓ aria2c - Multi-source downloader\n✓ btop - Modern resource monitor\n✗ cabextract - Extract CAB files\n✓ dos2unix - Convert DOS / Unix text files\n✗ genisoimage - Create ISO images\n✓ grc - Generic log colorizer\n...",
"outro": "Nützlich vor Skripten, die diese Werkzeuge benötigen. Beispielsweise braucht <code>uup_dump_iso_creator.sh</code> die Befehle <code>aria2c</code> + <code>cabextract</code> + <code>wimlib-imagex</code>. Fehlt etwas, installieren Sie die passende Gruppe oder wählen Sie die fehlenden Pakete einzeln aus."
},
"troubleshoot": {
"heading": "Fehlerbehebung",
"reposTitle": "„Repositories konnten nicht konfiguriert werden. Installation abgebrochen.“",
"reposBody": "Der Repository-Check wurde nicht bestanden: Der Wechsel zum No-Subscription-Repository wurde abgelehnt, der Subscription-Status konnte nicht gelesen werden oder ein Repository-Eintrag benötigt Aufmerksamkeit. Die darüber gedruckte Botschaft gibt die Ursache an. Die Repositories sind in <em>Node → Updates → Repositories</em> aufgeführt, und <code>apt-get update</code> von einer Konsole zeigt die Fehlermeldungen an.",
"warningsTitle": "Ein Paket wird \"Mit Warnungen\" gemeldet, aber der Befehl funktioniert, nachdem ich das Menü geschlossen habe",
"warningsBody": "Nach <code>apt-get install</code> führt die Hilfsfunktion <code>hash -r</code> aus, wartet kurz und prüft den erwarteten Befehl mit <code>command -v</code>. Eine Warnung bedeutet, dass diese Prüfung weiterhin fehlschlug; sie benennt keine Ursache. Versuchen Sie eine neue Shell und prüfen Sie Paketinstallation sowie PATH, falls der Befehl weiterhin fehlt.",
"hangsTitle": "Ein apt install hängt",
"hangsBody": "Höchstwahrscheinlich wird eine Debconf-Eingabeaufforderung hinter der stummgeschalteten Ausgabe blockiert. Das Skript wickelt alle apt-Aufrufe mit <code>DEBIAN_FRONTEND=noninteractive</code> ab, was normalerweise Aufforderungen unterdrückt, aber einige Pakete erfordern immer noch Benutzereingaben. Abbrechen mit <kbd>Ctrl</kbd> + <kbd>C</kbd>, führen Sie <code>apt-get install -y &lt;pkg&gt;</code> manuell aus einer Shell aus, um die Eingabeaufforderung zu sehen und zu entscheiden."
},
"files": {
"heading": "Beteiligte Dateien",
"code": "scripts/utilities/system_utils.sh # this script\nscripts/global/utils-install-functions.sh # PROXMENUX_UTILS, install_single_package\nscripts/global/repository-functions.sh # ensure_repositories\nscripts/global/repository_policy.py # reads and switches repositories through the Proxmox API\n/etc/apt/sources.list.d/proxmox.sources # no-subscription source, written by Proxmox when the switch is accepted"
},
"related": {
"heading": "Verwandte Themen",
"items": [
{
"href": "/docs/utils/system-update",
"label": "Proxmox-Systemupdate",
"tailRich": "— für den eigentlichen <code>apt dist-upgrade</code> auf dem Host."
},
{
"href": "/docs/network/monitoring",
"label": "Live-Überwachungswerkzeuge (Netzwerk)",
"tailRich": "- verwendet iftop / iptraf-ng / iperf3 aus derselben Liste."
},
{
"href": "/docs/utils",
"label": "Übersicht der Dienstprogramme",
"tailRich": " — zurück zur Abschnittsübersicht."
}
]
}
}
@@ -0,0 +1,335 @@
{
"meta": {
"title": "PVE 8 auf PVE 9 aktualisieren | ProxMenux-Dokumentation",
"description": "Drei Wege von Proxmox VE 8 zu 9 (Debian Bookworm zu Trixie und PVE 8 zu 9): automatisch, interaktiv oder manuell nach der offiziellen Proxmox-Anleitung. Mit pve8to9-Vorabprüfung, Repository-Umstellung, dist-upgrade und abschließender Kontrolle. Start im Webterminal wird verweigert.",
"ogTitle": "PVE 8 auf PVE 9 aktualisieren | ProxMenux-Dokumentation",
"ogDescription": "Drei Verfahren (automatisch, interaktiv, manuell) für den Wechsel von Proxmox VE 8 auf 9."
},
"header": {
"title": "Aktualisieren Sie PVE 8 auf PVE 9",
"description": "Führt das Upgrade von Proxmox VE 8 auf 9 nach der offiziellen Anleitung durch: Debian Bookworm zu Trixie und PVE 8 zu 9. Zur Auswahl stehen automatische, interaktive und manuelle Durchführung sowie eine separate Vorabprüfung. Der Start im Webterminal wird verweigert, da ein Verbindungsabbruch während des Upgrades den Host beschädigen kann.",
"section": "Dienstprogramme"
},
"dangerCallout": {
"title": "Ein Wechsel der Hauptversion lässt sich nicht rückgängig machen",
"intro": "Dieser Vorgang ersetzt die Debian-Basis (Bookworm → Trixie) und den Proxmox-Softwarebestand auf dem bestehenden System. Es gibt <strong>keine Rückkehr zur alten Version</strong>. Vor dem Start:",
"items": [
"<strong>Geprüfte Sicherungen</strong> aller VMs und CTs (PBS, vzdump, ZFS-Snapshots — auch die Wiederherstellung prüfen).",
"<strong>Konsolen- / IPMI- / iKVM-Zugang</strong> zum Host, falls SSH während des Upgrades ausfällt.",
"Der Host ist bereits auf PVE 8.4.x auf dem neuesten Stand (das Skript erzwingt dies).",
"Ceph (falls vorhanden) auf der Version 19.x Squid.",
"Mindestens <strong>5 GB freier Speicher</strong> im Root-Dateisystem."
]
},
"modeMenu": {
"heading": "Das Menü zur Modusauswahl",
"intro": "Die Option öffnet ein Menü mit vier Einträgen: Automatisch, Interaktiv, Vorabprüfung und Manuelle Anleitung. Drei Optionen <em>führen</em> das Upgrade aus oder erklären es; die separate Prüfung <em>kontrolliert</em> die Voraussetzungen und kann Reparaturen anbieten.",
"imageAlt": "Modusauswahl für das PVE-8-auf-9-Upgrade: Automatisch, Interaktiv, Vorabprüfung und Manuelle Anleitung"
},
"threeWays": {
"heading": "Drei Wege zum Upgrade",
"intro": "Automatisch und Interaktiv verwenden denselben Ablauf mit Vorabprüfung und abschließender Kontrolle. Sie unterscheiden sich beim Umgang mit dpkg-Rückfragen während <code>dist-upgrade</code>. Die manuelle Anleitung zeigt die Befehle samt Prüfungen; Sie müssen jeden Schritt selbst ausführen.",
"auto": {
"title": "Automatisch / unbeaufsichtigt",
"summary": "Setzt <code>ASSUME_YES=1</code> + <code>DEBIAN_FRONTEND=noninteractive</code>. Bei geänderten Konfigurationsdateien verwendet dpkg seine Standardaktion, sofern vorhanden; andernfalls wird <strong>die vorhandene Datei beibehalten</strong> (<code>--force-confold</code>).",
"items": [
"Am schnellsten — kein Warten auf Rückfragen",
"Geeignet für Standardinstallationen ohne angepasste Konfigurationsdateien",
"Risiko: Eine angepasste Datei bleibt ohne Rückfrage erhalten und kann neue Standardwerte überlagern"
]
},
"interactive": {
"title": "Interaktiv",
"summary": "Derselbe Ablauf, aber Sie beantworten jede dpkg-Rückfrage zu Konflikten bei Konfigurationsdateien. Langsamer, dafür mit voller Einsicht.",
"items": [
"Sie sehen jeden config Konflikt und entscheiden",
"Am besten, wenn Sie <code>/etc/lvm</code>, <code>/etc/ssh</code> usw. angepasst haben.",
"Konsultieren Sie die Tabelle der empfohlenen Antworten im manuellen Verfahren unten"
]
},
"manual": {
"title": "Handbuch zur Aktualisierung",
"summary": "Zeigt das Verfahren in 17 Schritten nach dem offiziellen Proxmox-Wiki an, ohne es auszuführen. Führen Sie die Befehle selbst in einer separaten Shell aus.",
"items": [
"Maximale Kontrolle - Sie geben jeden Befehl ein",
"Am besten, wenn Sie das Verfahren lernen möchten oder nichts vertrauen",
"Das Skript zeigt die Schritte an; nichts wird automatisch ausgeführt"
]
}
},
"precheckCallout": {
"title": "Plus einen separaten Pre-Check",
"body": "Option 3 — <strong>PVE-8-auf-9-Prüfung ausführen</strong> — startet die offizielle Prüfung <code>pve8to9 --full</code>, bietet geführte Reparaturen häufiger Probleme an und <strong>endet danach</strong>. Nutzen Sie sie vor dem Upgrade oder nach manuellen Reparaturen. Automatisch und Interaktiv führen sie ebenfalls aus; in der manuellen Anleitung führen Sie die Prüfung selbst aus."
},
"webTerminal": {
"heading": "Warum das Web-Terminal blockiert ist",
"body": "Alle drei Upgrade-Modi erkennen <code>termproxy</code> / <code>vncshell</code> in der Kette übergeordneter Prozesse und verweigern den Start. Das Proxmox-Webterminal wird von <code>pveproxy</code> bereitgestellt, einem Dienst, der beim Upgrade aktualisiert wird. Sobald <code>pveproxy</code> neu startet, endet die Terminalsitzung und damit auch das darin laufende Upgrade-Skript. Der Host kann unvollständig aktualisiert zurückbleiben.",
"warningTitle": "SSH oder eine physische / IPMI- / iKVM-Konsole verwenden",
"warningBody": "SSH ist die übliche Wahl. Starten Sie die Sitzung in <code>tmux</code> oder <code>screen</code>, damit das Upgrade kurze Netzunterbrechungen übersteht. Erkennt das Skript eine einfache SSH-Shell, zeigt es zu Beginn einen Hinweis auf tmux/screen an."
},
"auto": {
"heading": "Automatischer / unbeaufsichtigter Modus",
"intro": "Übliche Bestätigungen und Rückfragen zu Konfigurationsdateien verwenden die eingestellten Standardantworten. Blockierende Fehler der Vorabprüfung können weiterhin Eingriffe erfordern. Verwenden Sie den Modus für Standardinstallationen oder nachdem Sie die Auswirkungen auf angepasste Dateien geprüft haben.",
"behaviourHeading": "Besonderheiten des automatischen Modus",
"behaviourTable": {
"settingHeader": "Einstellung",
"effectHeader": "Wirkung",
"rows": [
{
"settingRich": "<code>ASSUME_YES=1</code>",
"effectRich": "Interner Schalter — bestätigt die Ja/Nein-Rückfragen des Skripts automatisch"
},
{
"settingRich": "<code>DEBIAN_FRONTEND=noninteractive</code>",
"effectRich": "apt / dpkg laufen ohne debconf-Rückfragen"
},
{
"settingRich": "<code>--force-confdef</code>",
"effectRich": "Bei unveränderten Konfigurationsdateien: neue Version des Paketbetreuers installieren"
},
{
"settingRich": "<code>--force-confold</code>",
"effectRich": "Bei geänderten Dateien: Standardaktion von dpkg verwenden, sofern vorhanden; andernfalls <strong>Ihre Version beibehalten</strong>."
}
]
},
"flowHeading": "Ablauf im automatischen Modus",
"flowIntro": "Sechs aufeinanderfolgende Phasen. Frühere Phasen können PVE-8-Pakete aktualisieren und Repository-Dateien schreiben. Ein Fehler hält den Ablauf an, macht diese Änderungen aber nicht rückgängig. Phase 5 führt <code>dist-upgrade</code> auf PVE 9 aus.",
"flowDiagram": "1. PRÜFUNGEN\ntermproxy / vncshell blockieren; PVE 9 ablehnen; Speicher und Verbindung prüfen.\nBei installiertem Ceph ist 19.x Squid erforderlich.\npve8to9 --full (kann Reparaturen anbieten).\n\n2. PVE 8 VORBEREITEN\nscripts/global/update-pve8.sh\nPVE-8-Pakete aktualisieren; systemctl restart pve-manager.\n\n3. REPOSITORIES UMSTELLEN\nBookworm → Trixie; deb822-Dateien .sources schreiben.\nAlte .list-Dateien auskommentieren; apt-get update.\n\n4. PVE-9-KANDIDAT PRÜFEN\napt-cache policy proxmox-ve\napt-get -s dist-upgrade\nAbbruch, wenn der Kandidat nicht 9.x ist oder proxmox-ve entfernt würde.\n\n5. UPGRADE\napt-get -y -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' dist-upgrade\nProtokoll: /var/log/pve8-a-pve9-'<'timestamp'>'.log\n\n6. PRÜFEN UND NEU STARTEN\nEFI: apt install grub-efi-amd64\npve8to9 --full; Ergebnis und Neustart-Rückfrage prüfen.",
"preflightHeading": "Vor dem Upgrade: diese Punkte werden geprüft",
"preflightTable": {
"checkHeader": "Prüfung",
"whyHeader": "Warum es wichtig ist",
"rows": [
{
"checkRich": "<strong>Webterminal-Sperre</strong>",
"whyRich": "Verhindert, dass das Upgrade seine eigene Shell beendet"
},
{
"checkRich": "<strong>Bereits auf 9.x</strong>",
"whyRich": "Abbruch, wenn der Host bereits PVE 9 ausführt (nichts zu tun)"
},
{
"checkRich": "<strong>Neueste PVE-8.4.x-Version</strong>",
"whyRich": "Aktualisiert PVE 8 zunächst mit dem PVE-8-Aktualisierungsskript auf den neuesten Stand; für ältere 8.x-Versionen gelten andere Voraussetzungen"
},
{
"checkRich": "<strong>pve8to9 --full</strong>",
"whyRich": "Proxmox-Prüfung der Upgrade-Voraussetzungen; FAIL-Meldungen blockieren das Upgrade bis zur Reparatur"
},
{
"checkRich": "<strong>Speicherplatz</strong>",
"whyRich": "≥ 1024 MB frei in <code>/var/cache/apt/archives</code> für heruntergeladene .deb-Dateien"
},
{
"checkRich": "<strong>Verbindungen</strong>",
"whyRich": "Ping auf <code>download.proxmox.com</code> — schlägt er fehl, wird nicht begonnen"
},
{
"checkRich": "<strong>Ceph 19.x Squid</strong>",
"whyRich": "Installiertes Ceph muss bereits 19.x verwenden. PVE 9 kann nicht mit Ceph 17/18 betrieben werden. Die Optionen <code>--ignore-ceph-check</code> und <code>--warn-ceph-check</code> umgehen die Prüfung; nutzen Sie sie nur mit entsprechendem Fachwissen."
}
]
},
"distUpgradeHeading": "Der Befehl dist-upgrade (Auto-Modus)",
"distUpgradeCode": "apt-get -y \\\n -o Dpkg::Options::='--force-confdef' \\\n -o Dpkg::Options::='--force-confold' \\\n dist-upgrade",
"distUpgradeOutro": "Die Ausgabe erscheint in Echtzeit auf stdout und wird zugleich in <code>/var/log/pve8-a-pve9-&lt;timestamp&gt;.log</code> gespeichert. Sie sehen alles; nur die Rückfragen entfallen.",
"postHeading": "Post-Upgrade-Aufgaben (Automodus)",
"postItems": [
"<strong>EFI-Hosts:</strong> installiert <code>grub-efi-amd64</code> gemäß dem bekannten Problem in der Proxmox-Dokumentation. Das Paket wird beim Upgrade nicht automatisch installiert und kann für den nächsten Start erforderlich sein.",
"<strong>Zeitpunkt des Neustarts von <code>pve-manager</code>.</strong> Der ausdrückliche Neustart erfolgt bei der Vorbereitung von PVE 8, vor dem Paket-Upgrade auf Trixie/PVE 9.",
"<strong><code>pve8to9 --full</code> erneut ausführen.</strong> Zeigt verbliebene Probleme. Bei FAIL-Meldungen erscheint das gleiche Reparaturmenü wie bei der Vorabprüfung.",
"<strong>Neustart-Rückfrage.</strong> Ein Neustart wird empfohlen, um den neuen Kernel und die Dienste zu laden. Lehnen Sie ihn nur aus einem konkreten Grund ab; der alte Kernel nach einem Hauptversionswechsel birgt Risiken."
]
},
"interactive": {
"heading": "Interaktiver Modus",
"intro": "Derselbe Ablauf wie im <autolink>automatischen Modus</autolink>: gleiche Vorabprüfungen, Repository-Umstellung und Abschlussprüfung. Der Unterschied liegt bei <code>dist-upgrade</code>: <strong>Sie beantworten jede dpkg-Rückfrage zu Konfigurationskonflikten selbst</strong>. ProxMenux verwendet <code>apt-get dist-upgrade</code> ohne die Optionen <code>--force-conf*</code>.",
"distUpgradeHeading": "Der Befehl dist-upgrade (interaktiver Modus)",
"distUpgradeCode": "apt-get dist-upgrade\n# (user answers each dpkg config-file conflict prompt as it appears)",
"whenHeading": "Wenn interaktiv die richtige Wahl ist",
"whenItems": [
"Sie haben <code>/etc/lvm/lvm.conf</code>, <code>/etc/ssh/sshd_config</code>, <code>/etc/default/grub</code> oder eine andere Konfigurationsdatei angepasst, die vom Upgrade berührt wird.",
"Sie möchten sehen, welche Pakete Konfigurationskonflikte verursachen, und für jede Datei einzeln entscheiden.",
"Sie aktualisieren einen Produktionshost, bei dem versteckte Änderungen inakzeptabel sind."
],
"promptCalloutTitle": "Was bei jeder Aufforderung zu antworten",
"promptCalloutBody": "Hier gelten die gleichen Empfehlungen wie im manuellen Verfahren: siehe <dpkglink>Empfohlene Antworten auf dpkg-Rückfragen</dpkglink> weiter unten. Mit <strong>D</strong> zeigen Sie die Unterschiede an; mit <strong>Z</strong> öffnen Sie eine Shell."
},
"manual": {
"heading": "Manuelles Upgrade-Verfahren",
"intro": "Dies zeigt die Menüoption <strong>Manuelle Upgrade-Anleitung</strong>: die <wikilink>offizielle Proxmox-Anleitung für das Upgrade von 8 auf 9</wikilink>, in vier Phasen gegliedert. Das Skript <em>zeigt</em> die Befehle; Sie führen sie selbst in einer separaten Root-Shell aus. Volle Einsicht in jeden Schritt.",
"rootCalloutTitle": "Alle Befehle brauchen root",
"rootCalloutBody": "Verwenden Sie eine Root-Shell, auch für Umleitungen und Here-Dokumente. Bei <code>sudo</code> muss der gesamte Befehl mit Root-Rechten ausgeführt werden.",
"phase1Heading": "Phase 1 — Vorbereitung",
"phase1Intro": "PVE auf den neuesten Stand von 8.4.x bringen, Version und gegebenenfalls Ceph prüfen, die Proxmox-Vorabprüfung ausführen und einen Terminal-Multiplexer gegen Verbindungsabbrüche starten.",
"phase1Code": "# Step 1 — Update PVE 8 to the latest 8.4+\napt update && apt dist-upgrade -y\n\n# Step 2 — Verify version (must be 8.4.1 or newer)\npveversion\n\n# Step 2.1 — Hyper-converged Ceph: must already be on 19.x Squid\nceph --version\n# If older, follow https://pve.proxmox.com/wiki/Ceph_Reef_to_Squid\n\n# Step 3 — Run the official upgrade-readiness check\npve8to9 --full\n# If it warns about systemd-boot meta-package, remove it:\n# apt remove systemd-boot\n\n# Step 4 — Start tmux or screen (so SSH disconnect doesn't kill the upgrade)\ntmux new-session -s upgrade\n# or\nscreen -S upgrade",
"phase2Heading": "Phase 2 — Repository-Umstellung",
"phase2Intro": "Alle Debian- und Proxmox-Repositories von Bookworm auf Trixie umstellen und Proxmox-Quellen ins deb822-Format überführen. <strong>Schritt 7 ODER 8 wählen</strong>, je nachdem, ob Sie ein Enterprise-Abonnement haben. Ohne Ceph Schritt 9 überspringen.",
"phase2Code": "# Step 5 — Debian: bookworm → trixie\nsed -i 's/bookworm/trixie/g' /etc/apt/sources.list\n\n# Step 6 — Same for the legacy enterprise list (only if you use enterprise)\nsed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-enterprise.list\n\n# Step 7 — Add the new PVE 9 enterprise repo (deb822) — Enterprise users only\ncat > /etc/apt/sources.list.d/pve-enterprise.sources << EOF\nTypes: deb\nURIs: https://enterprise.proxmox.com/debian/pve\nSuites: trixie\nComponents: pve-enterprise\nSigned-By: /usr/share/keyrings/proxmox-archive-keyring.gpg\nEOF\n\n# Step 8 — OR add the no-subscription repo (most home / lab users)\ncat > /etc/apt/sources.list.d/proxmox.sources << EOF\nTypes: deb\nURIs: http://download.proxmox.com/debian/pve\nSuites: trixie\nComponents: pve-no-subscription\nSigned-By: /usr/share/keyrings/proxmox-archive-keyring.gpg\nEOF\n\n# Step 8.1 — Refresh and verify proxmox-ve candidate is 9.x\napt update && apt policy | sed -n '1,120p'\n\n# Step 9 — Update Ceph repo (only if you run Ceph)\ncat > /etc/apt/sources.list.d/ceph.sources << EOF\nTypes: deb\nURIs: http://download.proxmox.com/debian/ceph-squid\nSuites: trixie\nComponents: no-subscription\nSigned-By: /usr/share/keyrings/proxmox-archive-keyring.gpg\nEOF\n\n# Step 10 — Remove old .list files now superseded by deb822 .sources\nrm -f /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/ceph.list\n\n# Step 11 — Final apt update\napt update",
"phase3Heading": "Phase 3 — Das dist-upgrade",
"phase3Intro": "Das eigentliche Upgrade. Schritt 12 ist optional, aber empfohlen, um zahlreiche Audit-Meldungen zu unterdrücken. Schritt 13 dauert länger; beantworten Sie die dpkg-Rückfragen anhand der Tabelle. Schritt 13.1 betrifft nur EFI und folgt den offiziell bekannten Problemen.",
"phase3Code": "# Step 12 — Disable kernel audit messages (optional)\nsystemctl disable --now systemd-journald-audit.socket\n\n# Step 13 — The main upgrade (this takes a while)\napt dist-upgrade\n# (answer prompts using the table below)\n\n# Step 13.1 — EFI hosts: install grub for EFI (per known issues)\n[ -d /sys/firmware/efi ] && apt install grub-efi-amd64",
"dpkgHeading": "Empfohlene Antworten für die dpkg prompts",
"dpkgIntro": "Empfehlungen der offiziellen Proxmox-Anleitung: <strong>Y</strong> installiert die neue Datei des Paketbetreuers und überschreibt Ihre Datei; <strong>N</strong> behält Ihre Datei. Prüfen Sie bei Zweifeln zuerst die Unterschiede:",
"dpkgTable": {
"fileHeader": "Datei / prompt",
"answerHeader": "Empfohlene Antwort",
"whyHeader": "Warum",
"rows": [
{
"fileRich": "/etc/issue",
"answerRich": "<strong>N</strong> (vorhandene Datei behalten)",
"whyRich": "Die gewohnte Anmeldeinformation bleibt erhalten",
"fileFont": true
},
{
"fileRich": "/etc/lvm/lvm.conf",
"answerRich": "<strong>Y</strong> (Version des Paketbetreuers)",
"whyRich": "PVE 9 benötigt die neuen LVM-Standardwerte",
"fileFont": true
},
{
"fileRich": "/etc/ssh/sshd_config",
"answerRich": "<strong>Y</strong> bei reinen Standardänderungen; angepasste Dateien zuerst prüfen",
"whyRich": "Lokale SSH-Einstellungen prüfen und den Zugang sichern, bevor die Datei ersetzt wird. Standardänderungen betreffen umbenannte Optionen und Kommentare.",
"fileFont": true
},
{
"fileRich": "/etc/default/grub",
"answerRich": "<strong>N</strong>, falls angepasst",
"whyRich": "Hier stehen Startparameter, etwa für IOMMU und PCI-Passthrough",
"fileFont": true
},
{
"fileRich": "/etc/chrony/chrony.conf",
"answerRich": "<strong>Y</strong>, falls unverändert; lokale Einstellungen zuvor sichern",
"whyRich": "Trixie aktualisiert die Zeitsynchronisation. Lokale Einstellungen vor Übernahme der neuen Datei in chronys Verzeichnisse conf.d / sources.d verschieben.",
"fileFont": true
},
{
"fileRich": "Dienstneustarts während des Upgrades",
"answerRich": "<strong>Ja</strong> (Standard)",
"whyRich": "Die meisten Dienste werden ohne Neustart des Hosts neu geladen",
"fileFont": false
},
{
"fileRich": "<code>apt-listchanges</code>",
"answerRich": "<kbd>q</kbd> drücken",
"whyRich": "Beendet nur den Pager; angezeigt wird die Zusammenfassung des Änderungsprotokolls",
"fileFont": false
}
]
},
"inspectCalloutTitle": "Prüfung eines spezifischen dpkg-Konflikts",
"inspectCalloutBody": "Bei einer dpkg-Rückfrage zu Konfigurationsdateien zeigt <strong>D</strong> die Unterschiede zwischen Ihrer Datei und der neuen Version; <strong>Z</strong> öffnet eine Shell für weitere Prüfungen. Beides hilft, eine fundierte Entscheidung zu treffen.",
"phase4Heading": "Phase 4 — Post-Upgrade",
"phase4Intro": "Erfolgreiches Upgrade prüfen, zum Laden des PVE-9-Kernels neu starten und die neue Version bestätigen. Verbliebene alte <code>.list</code>-Dateien können anschließend ins deb822-Format umgewandelt werden.",
"phase4Code": "# Step 14 — Re-run the readiness check (should be much cleaner now)\npve8to9 --full\n\n# Step 15 — Reboot to load the new kernel and PVE 9 daemons\nreboot\n\n# Step 16 — After reboot, confirm PVE 9.x\npveversion\n# Should show pve-manager/9.x.x\n\n# Step 17 — Optional: modernise the remaining legacy .list files to deb822\napt modernize-sources\n# (keeps .list backups as .bak)"
},
"clusterCeph": {
"heading": "Cluster & Ceph",
"clusterCalloutTitle": "Cluster: Upgrade-Knoten nacheinander",
"clusterCalloutBody": "Erkannt über <code>pvecm status</code>. <strong>Nicht</strong> mehrere Knoten gleichzeitig aktualisieren. Gäste zuerst verschieben, den Knoten aktualisieren, neu starten und die Cluster-Mitgliedschaft prüfen. Erst dann fortfahren. Während des Upgrades funktioniert Live-Migration von älteren zu neueren PVE-Versionen; die Gegenrichtung wird grundsätzlich nicht unterstützt. HA-Gruppen werden automatisch in HA-Regeln umgewandelt, sobald alle Knoten PVE 9 verwenden.",
"cephCalloutTitle": "Ceph: ZUERST Ceph, danach Proxmox aktualisieren",
"cephCalloutBody": "Ceph muss vor dem Proxmox-Upgrade bereits 19.x Squid verwenden. Folgen Sie der offiziellen Reihenfolge Quincy 17 → Reef 18 → Squid 19: Pakete aktualisieren und Ceph-Daemons schrittweise in der dokumentierten Reihenfolge neu starten. Vor dem Upgrade jedes Proxmox-Knotens <code>ceph --version</code> prüfen. Vollständiges Verfahren: <cephlink>Wiki zum Upgrade von Ceph Reef auf Squid</cephlink>."
},
"troubleshooting": {
"heading": "Fehlerbehebung",
"items": [
{
"title": "Skript bricht ab: \"This script cannot be executed from the Proxmox web terminal\"",
"bodyRich": "Eine SSH-Verbindung oder Konsole / IPMI / iKVM verwenden und dort erneut starten. Mit <code>tmux new -s pveupgrade</code> übersteht die Sitzung kurze Netzunterbrechungen."
},
{
"title": "pve8to9 meldet FAIL, automatische Reparatur mit Option 1 meldet \"command not found\"",
"bodyRich": "Erwähnt der Fehler <code>configure_repositories</code>, ist die Skriptkopie veraltet. Die aktuelle Reparatur verwendet cleanup_duplicate_repos und ensure_repositories. Kopie aktualisieren oder die manuellen Befehle mit Option 2 prüfen. <code>apt-get update</code> aktualisiert Paketlisten, behebt aber nicht jede blockierende Prüfung."
},
{
"title": "apt-Simulation meldet \"proxmox-ve will be REMOVED\"",
"bodyRich": "Die neuen Repositories sind nicht erreichbar oder die Umstellung des Codenamens fehlt. <code>cat /etc/apt/sources.list.d/proxmox.sources</code> prüfen: Bei <code>Suites:</code> muss <code>trixie</code> statt <code>bookworm</code> stehen. <code>apt-cache policy proxmox-ve</code> muss einen 9.x-Kandidaten aus dem neuen Repository anzeigen."
},
{
"title": "dist-upgrade scheitert teilweise",
"bodyRich": "Mit <code>apt-get -f install</code> beschädigte Abhängigkeiten beheben und das Upgrade erneut starten. Bei weiteren Fehlern die letzten Zeilen von <code>/var/log/pve8-a-pve9-&lt;timestamp&gt;.log</code> prüfen. Nicht neu starten, bevor <code>dpkg -l | grep ^iU</code> keine Ausgabe mehr liefert."
},
{
"title": "EFI-Host startet nicht nach dem Neustart",
"bodyRich": "Nach dem Upgrade wird <code>grub-efi-amd64</code> installiert. Falls dieser Schritt fehlte oder scheiterte, das Proxmox-Installations-ISO im Rettungsmodus starten, das Root-Dateisystem einhängen, chroot aufrufen und <code>apt-get install grub-efi-amd64 &amp;&amp; update-grub</code> ausführen."
},
{
"title": "GUI wird nach dem Upgrade nicht geladen",
"bodyRich": "<code>systemctl status pveproxy</code> und <code>systemctl restart pveproxy</code> ausführen. Besteht das Problem weiter, den Fehler mit <code>journalctl -u pveproxy -b</code> untersuchen."
},
{
"title": "Netzwerk funktioniert nicht nach dem Neustart",
"bodyRich": "Prüfen, ob <code>/etc/network/interfaces</code> vorhandene Geräte nennt und <code>ifupdown2</code> installiert ist: <code>apt install ifupdown2</code>. Bei geänderten Gerätenamen siehe <netlink>Persistente Schnittstellennamen</netlink>."
},
{
"title": "Split-Brain im Cluster nach dem Upgrade eines Knotens",
"bodyRich": "Gemischte Cluster mit PVE 8 und PVE 9 werden während des Upgrades unterstützt. Live-Migration von älteren zu neueren Versionen funktioniert; die Gegenrichtung wird grundsätzlich nicht unterstützt. Bei einem offline angezeigten Knoten <code>corosync</code> und die QDevice-/Netzkonfiguration prüfen. Mit <code>pvecm status</code> auf jedem Knoten das Quorum bestätigen."
}
]
},
"files": {
"heading": "Beteiligte Dateien",
"code": "scripts/utilities/upgrade_pve8_to_pve9.sh # main upgrade orchestrator\nscripts/utilities/pve8to9_check.sh # pre-check (separate menu option)\nscripts/utilities/proxmox-upgrade-pve8-to-pve9-manual-guide.sh # 17-step runbook\nscripts/global/update-pve8.sh # PVE 8 worker (final patches)\n/etc/apt/sources.list # bookworm → trixie sed\n/etc/apt/sources.list.d/proxmox.sources # created (deb822 PVE 9)\n/etc/apt/sources.list.d/debian.sources # created (deb822 trixie)\n/etc/apt/sources.list.d/ceph.sources # created if Ceph\n/etc/apt/sources.list.d/*.list # legacy files commented out / removed\n/var/log/pve8-a-pve9-'<'timestamp'>'.log # full upgrade log"
},
"references": {
"heading": "Offizielle Quellen",
"intro": "Das manuelle Verfahren des Skripts folgt diesen offiziellen Quellen. Bei Zweifeln während eines Upgrades gilt das offizielle Wiki; ProxMenux unterstützt die Durchführung, maßgeblich ist Proxmox.",
"items": [
{
"href": "https://pve.proxmox.com/wiki/Upgrade_from_8_to_9",
"title": "Upgrade von 8 auf 9",
"desc": "Die Haupt-Proxmox-Wikiseite für das 8 → 9 Upgrade. Quelle der Wahrheit für jeden Befehl im manuellen Verfahren oben."
},
{
"href": "https://pve.proxmox.com/wiki/Ceph_Reef_to_Squid",
"title": "Upgrade auf Ceph Squid (19.x)",
"desc": "Erforderlicher Vorbereitungsschritt für hyperkonvergente Ceph-Knoten. Vor PVE 9 muss Ceph 19.x Squid laufen."
},
{
"href": "https://pve.proxmox.com/wiki/Roadmap",
"title": "Proxmox VE Fahrplan",
"desc": "Neuerungen von PVE 9 gegenüber 8.x. Vor dem Upgrade lesen, um die Änderungen zu kennen."
},
{
"href": "https://www.debian.org/releases/trixie/releasenotes",
"title": "Versionshinweise zu Debian Trixie",
"desc": "PVE 9 basiert auf Debian Trixie. Die Debian-Versionshinweise erläutern Änderungen am Betriebssystem, die auch Ihren Host betreffen."
},
{
"href": "https://forum.proxmox.com/forums/proxmox-ve-installation-and-configuration.16/",
"title": "Proxmox VE Installationsforum",
"desc": "Bei Problemen während des Upgrades zuerst dieses Forum durchsuchen. Möglicherweise ist das gleiche Problem bereits beschrieben."
},
{
"href": "https://pve.proxmox.com/wiki/Backup_and_Restore",
"title": "Backup und Restore",
"desc": "Ein Major-Version-Upgrade ist nicht reversibel. Überprüfen Sie Ihre Backup-Disziplin vor dem Start."
}
]
},
"video": {
"heading": "Videoanleitung",
"intro": "Bevor Sie das Upgrade Ende-zu-Ende laufen sehen, bevor Sie es selbst tun? Dieser Walkthrough zeigt den ProxMenux Upgrade-Flow in Echtzeit.",
"title": "ProxMenux — Videoanleitung zum Upgrade von Proxmox VE 8 auf 9",
"caption": "Externes YouTube-Video. Wiedergabe im erweiterten Datenschutzmodus; Cookies erst nach dem Start der Wiedergabe."
},
"related": {
"heading": "Verwandte Themen",
"items": [
{
"href": "/docs/utils/system-update",
"label": "Proxmox-Systemupdate",
"tail": " — für reguläre Aktualisierungen innerhalb einer Hauptversion (8.4.1 → 8.4.5 usw.)."
},
{
"href": "/docs/utils",
"label": "Übersicht der Dienstprogramme",
"tail": " — zurück zur Abschnittsübersicht."
}
]
}
}
@@ -0,0 +1,161 @@
{
"meta": {
"title": "UUP-Dump-ISO-Erstellung | ProxMenux-Dokumentation",
"description": "Erstellen Sie mit der ProxMenux-UUP-Dump-ISO-Erstellung eine aktuelle Windows-Installations-ISO auf Ihrem Proxmox-Host. Installation der Abhängigkeiten, Download und Umwandlung der UUP-Dateien in eine bootfähige ISO für die VM-Erstellung werden automatisiert.",
"ogTitle": "UUP-Dump-ISO-Erstellung | ProxMenux-Dokumentation",
"ogDescription": "Erstellen Sie mit ProxMenux eine aktuelle Windows-ISO aus UUP Dump. Abhängigkeiten, Download und Umwandlung werden vollständig automatisiert.",
"ogImageAlt": "ProxMenux — UUP-Dump-ISO-Erstellung"
},
"header": {
"title": "UUP-Dump-ISO-Erstellung",
"description": "Erstellen Sie mit UUP Dump eine aktuelle Windows-Installations-ISO auf Ihrem Proxmox-Host. ProxMenux verwaltet die Abhängigkeiten, lädt UUP-Dateien parallel herunter, führt den UUP-Dump-Konverter aus und verschiebt die ISO in das gewählte Ausgabeverzeichnis. Voreingestellt ist der erkannte Proxmox-ISO-Speicher.",
"section": "Dienstprogramme"
},
"intro": {
"title": "Was dieses Skript macht",
"body": "Geben Sie eine von uupdump.net nach Auswahl von Build, Sprache und Edition erzeugte URL an. Das Skript installiert fehlende Abhängigkeiten, lädt den UUP-Dump-Konverter und die UUP-Dateien herunter, erstellt eine bootfähige Windows-ISO und verschiebt sie in das gewählte Ausgabeverzeichnis. Als Standardziel wird der erkannte Proxmox-ISO-Speicher angeboten."
},
"hero": {
"imageAlt": "UUP Dump ISO Creator Eintrag in ProxMenux",
"caption": "UUP Dump ISO Creator Eintrag in ProxMenux"
},
"what": {
"heading": "Was ist UUP Dump?",
"intro": "UUP Dump ist ein Community-Dienst zum Herunterladen der ursprünglichen Unified-Update-Platform-Dateien (UUP), mit denen Windows Update Windows bereitstellt. Daraus lässt sich eine normale bootfähige ISO erstellen. So erhalten Sie:",
"items": [
"Der neueste Windows-Build (einschließlich Insider Preview-Kanäle).",
"Ein spezifischer historischer Build, der nicht mehr auf der Download-Seite von Microsoft aufgeführt ist.",
"Saubere, unveränderte Dateien, die direkt von den Servern von Microsoft stammen.",
"Die genaue Kombination von Editionen und Sprachen, die Sie in einer einzigen ISO wünschen."
],
"learnMore": "Erfahren Sie mehr auf der <extlink>UUP Dump Projektseite</extlink>."
},
"automates": {
"heading": "Was das Skript automatisiert"
},
"dependencies": {
"heading": "Abhängigkeiten",
"intro": "Das erste, was das Skript tut, ist die Suche nach den Tools, die zum Herunterladen von UUP-Nutzlasten und zum Zusammenbauen der ISO erforderlich sind. Alle, die fehlen, werden mit <code>apt-get</code> installiert:",
"headerPackage": "Paket",
"headerRole": "Rolle",
"rows": [
{
"pkg": "curl",
"roleRich": "HTTP-Downloads für den Start des Konverters."
},
{
"pkg": "aria2",
"roleRich": "Paralleler Downloader für alle UUP-Dateien."
},
{
"pkg": "cabextract",
"roleRich": "Extrahiert Microsoft CAB-Pakete."
},
{
"pkg": "wimtools",
"roleRich": "Erstellt <code>install.wim</code> (wimlib-imagex)."
},
{
"pkg": "genisoimage",
"roleRich": "Schreibt die endgültige bootfähige ISO (oder <code>mkisofs</code>)."
},
{
"pkg": "chntpw",
"roleRich": "Passt Windows-Registrierungsstrukturen während der Erstellung an."
}
],
"manualIntro": "Manuelles Äquivalent - wenn Sie sie jemals selbst installieren müssen:",
"manualCode": "apt-get install curl aria2 cabextract wimtools genisoimage chntpw"
},
"flow": {
"heading": "Download und Konvertierung",
"steps": [
"Erkennt den Proxmox ISO-Speicher (über <code>pvesm status -content iso</code>) oder fällt auf <code>/var/lib/vz/template/iso</code> zurück.",
"Bittet um einen Basisordner für temporäre Dateien (Standard <code>/root/uup-temp</code>).",
"Lädt den UUP-Dump-Konverter von <code>git.uupdump.net</code> herunter.",
"Liest <code>id</code>, <code>pack</code> und <code>edition</code> aus der eingefügten URL.",
"Ruft <code>https://uupdump.net/get.php?…&aria2=2</code> auf, um eine aria2-Downloadliste zu erstellen.",
"Lädt alle UUP-Dateien mit aria2 nach <code>UUPs/</code> herunter, parallel und fortsetzbar.",
"Führt <code>convert.sh wim UUPs 1</code> aus dem Konverter aus, um die fertige ISO zu erstellen.",
"Verschiebt die ISO in das gewählte Ausgabeverzeichnis und entfernt temporäre Dateien."
]
},
"aria2": {
"heading": "Verwendete aria2-Downloadoptionen",
"code": "aria2c --no-conf --console-log-level=warn --log-level=info \\\n --log=aria2_download.log \\\n -x16 -s16 -j5 -c -R \\\n -d\"$destDir\" -i\"$tempScript\"",
"flags": [
"<code>-x16</code> — bis zu 16 Verbindungen pro Server.",
"<code>-s16</code> — teilt jede Datei in 16 Segmente.",
"<code>-j5</code> — 5 Dateien, die parallel heruntergeladen wurden.",
"<code>-c</code> — nimmt teilweise Downloads wieder auf.",
"<code>-R</code> — übernimmt den Zeitstempel der entfernten Datei für die heruntergeladene Datei, falls verfügbar."
],
"runtime": "Die typische Laufzeit beträgt etwa 10 Minuten und hängt vor allem von der Internetgeschwindigkeit und der Auslastung der UUP-Dump-Downloadserver ab."
},
"step1": {
"heading": "Schritt 1 · Erhalten Sie eine UUP Dump URL",
"intro": "Bevor Sie das Skript ausführen, benötigen Sie eine UUP-Dump-URL, die die Abfrageparameter <code>id</code>, <code>pack</code> und <code>edition</code> enthält. Generieren Sie es auf <extlink>uupdump.net</extlink>:",
"stepBadge": "Schritt",
"items": [
{
"title": "Wählen Sie eine Windows-Version",
"img": "/iso-creator/step-1-select-version-windows.png",
"caption": "UUP Dump Hauptseite - Wählen Sie eine Windows-Version",
"body": "Öffnen Sie die UUP Dump-Homepage und wählen Sie die gewünschte Windows-Version aus."
},
{
"title": "Wählen Sie einen bestimmten Build",
"img": "/iso-creator/step-2-select-version-windows.png",
"caption": "Wählen Sie einen bestimmten Build",
"body": "Wählen Sie den gewünschten Build: den neuesten, einen aus einem Insider-Preview-Kanal oder einen noch aufgeführten älteren Build."
},
{
"title": "Wählen Sie eine Sprache",
"img": "/iso-creator/step-3-select-version-windows.png",
"caption": "Wählen Sie eine Sprache",
"body": "Wählen Sie die Sprache für die ISO."
},
{
"title": "Editionen auswählen",
"img": "/iso-creator/step-4-select-version-windows.png",
"caption": "Wählen Sie die aufzunehmenden Editionen",
"body": "Wählen Sie die Editionen aus, um sie in die ISO zu bündeln (Home, Pro, Enterprise, ...). Sie können mehrere kombinieren."
},
{
"title": "Kopieren der URL",
"img": "/iso-creator/step-5-select-version-windows.png",
"caption": "Kopieren der URL aus der Adressleiste",
"bodyRich": "Kopieren Sie auf der letzten Seite die URL <em>aus der Adressleiste des Browsers</em>. Sie muss <code>id=…</code>, <code>pack=…</code> und <code>edition=…</code> enthalten. Das Skript liest diese Zeichenfolge aus."
}
]
},
"step2": {
"heading": "Schritt 2 · ISO-Erstellung starten",
"intro": "Mit der URL in der Hand, öffnen Sie ProxMenux und starten Sie den Creator:",
"stepBadge": "Schritt",
"items": [
{
"title": "Starten Sie UUP Dump ISO Creator",
"img": "/iso-creator/start-uupdump-iso-creator.png",
"caption": "Starten Sie UUP Dump ISO Creator von ProxMenux",
"bodyRich": "Öffnen Sie in ProxMenux <strong>Utilities → UUP Dump ISO Creator</strong>. Das Skript prüft vor der Eingabeaufforderung die Abhängigkeiten und das ISO-Speicherverzeichnis."
},
{
"title": "Fügen Sie die UUP Dump URL ein",
"img": "/iso-creator/add-url-iso-creator.png",
"caption": "Fügen Sie die von uupdump.net kopierte URL ein",
"body": "Fügen Sie die URL in den Eingabedialog ein. Das Skript bestätigt, dass die drei erforderlichen Parameter vorhanden sind; wenn eines fehlt, wird es sauber abgebrochen."
},
{
"title": "Warten Sie, bis der Build fertig ist",
"img": "/iso-creator/end-uupdump-iso-creator.png",
"caption": "Build fertig - ISO ist bereit im Proxmox ISO-Speicher",
"bodyRich": "Die Konsole zeigt den aria2-Fortschritt und anschließend die Ausgabe des Konverters. Die fertige ISO wird in das gewählte Ausgabeverzeichnis verschoben. Liegt sie in einem konfigurierten Proxmox-ISO-Speicher, lässt sie sich unter <strong>Create VM → System Windows → Install with ISO from UUP Dump</strong> auswählen."
}
]
},
"tempFiles": {
"title": "Temporäre Dateien",
"body": "Der temporäre Standardordner ist <code>/root/uup-temp</code>. Downloads liegen in <code>UUPs/</code>, der Konverter in <code>converter/</code>. Bei einem eigenen Basispfad wird ein separates Sitzungsunterverzeichnis angelegt. Nach erfolgreicher Erstellung oder im Zweig ohne erzeugte ISO wird die temporäre Sitzung entfernt. Bei früheren Fehlern oder einem Abbruch können temporäre Dateien zurückbleiben."
}
}