26 Kapitel in vier Teilen, in der Reihenfolge, in der man sie braucht: erst sichern, dann Dateien holen, dann ganze Maschinen wiederherstellen, dahinter der Nachschlagteil. Gebaut wird mit MkDocs + Material. Bewusst ohne Netzabhaengigkeiten: keine Schriften vom CDN (font: false), Volltextsuche mit deutschem Stemming liegt neben den Seiten. Im Notfall steht vielleicht das halbe Netz - dann nuetzt eine Doku im Internet nichts. handbuch/bauen.sh baut handbuch/site/ handbuch/bauen.sh ansehen Vorschau auf 127.0.0.1:8000 install.sh nimmt das gebaute Handbuch mit nach /usr/share/doc/pvesnap/handbuch/ - falls es vorliegt. Auf dem Host selbst wird nichts gebaut, mkdocs gehoert nicht auf einen Hypervisor. Die 28 Bildschirmfotos sind nicht abfotografiert, sondern erzeugt: Der echte Programmcode laeuft in einem Pseudo-Terminal gegen einen erfundenen Proxmox-Host (Attrappen fuer pvesh, perl und rbd), pyte baut den Bildschirm nach, heraus faellt ein SVG. Damit stimmen sie garantiert mit dem Programm ueberein, sind reproduzierbar und enthalten keine echten Daten. Die Werkstatt dafuer liegt unter handbuch/werkstatt/ samt LIESMICH.md. Nebenbei: die Schlussmeldung von install.sh warb noch mit --exchange, das mit dem eingebauten Austauschlaufwerk weggefallen ist. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
6.0 KiB
Dongle und USB
Eine abgeschottete Maschine hat kein Netzwerk. Ein Software-Schutzmodul hängt sonst an einem USB-Server im Netz — der ist damit unerreichbar. Und ohne Lizenzprüfung startet die Warenwirtschaft nicht, aus der man gerade Daten holen wollte.
SPICE löst das. Die USB-Weiterleitung kommt vom Rechner des Bedieners, nicht über das Gastnetz. Die Maschine bleibt also vollständig abgeschottet und hat trotzdem ihren Dongle.
Dein Arbeitsplatz Proxmox-Host Gast
Dongle am USB ──SPICE──► QEMU ──virtuell──► "USB-Gerät"
remote-viewer (kein Netz nötig)
Einrichten
Beim Anlegen in der Optionsmaske die beiden Felder setzen — oder direkt:
pvesnap-recovery live 105 --usb 2 --no-resume
--usb schaltet --spice automatisch mit ein.
Die Zusammenfassung sagt dann, was zu tun ist:
Verbinden
pvesnap-recovery spice 9104 -o vm.vv # Verbindungsdatei erzeugen
scp root@10.20.0.12:vm.vv . # auf den Arbeitsplatz holen
remote-viewer vm.vv # öffnen
Ohne -o wird die Datei auf die Standardausgabe geschrieben — praktisch für
eine Pipeline:
ssh root@pve2 pvesnap-recovery spice 9104 > vm.vv && remote-viewer vm.vv
Im remote-viewer dann unter Datei → USB-Geräteauswahl das Gerät anhaken. Es taucht sofort im Gast auf.
!!! success "Guest-Tools braucht es dafür nicht"
Der Dongle erscheint im Gast als gewöhnliches USB-Gerät; QEMU und der
SPICE-Client machen die Arbeit.
Die Guest-Tools (`tools/get-guest-tools.sh` holt virtio-win auf einen
ISO-Storage) sind nur für Zwischenablage, automatische Auflösung und
Mauszeiger nützlich. Für den Dongle sind sie überflüssig.
Die Verbindungsdatei ist kurzlebig: Das darin enthaltene Kennwort gilt nur für wenige Sekunden. Sie muss also zeitnah nach dem Erzeugen benutzt werden — nicht am Vortag vorbereiten.
Zwei Dinge, die man vorher wissen sollte
USB braucht SPICE
Ohne vga: qxl legt QEMU die Weiterleitungen zwar an, aber es gibt keinen
Kanal, der sie transportiert — die Maschine startet dann mit no spice port
gar nicht erst.
Deshalb schaltet --usb die Anzeige automatisch mit ein.
Umgekehrt gilt das nicht: Wer SPICE ausschaltet, verliert die USB-Anschlüsse mit — ohne Kanal wären sie ohnehin wirkungslos. pvesnap sagt das dazu, statt sie stillschweigend stehen zu lassen.
SPICE und geladener Arbeitsspeicher schließen sich aus
Das ist der unangenehme Teil, und er hängt davon ab, was im Original steht:
| Original | warmer RAM-Zustand | SPICE + Dongle |
|---|---|---|
vga: std (Vorgabe) |
✅ | nur mit --no-resume |
vga: qxl |
✅ | ✅ gleichzeitig |
Der Grund: qxl bringt 64 MB Grafikspeicher mit, die Vorgabe 16. Der
gespeicherte Zustand passt dann nicht mehr, und das Laden bricht ab:
Size mismatch: vga.vram
Die Maschine bleibt danach angehalten stehen, während Proxmox TASK OK meldet.
pvesnap-recovery lehnt die Kombination deshalb von vornherein ab und nennt die
Auswege.
!!! tip "Der Griff, der sich lohnt — für Produktivmaschinen"
Setz auf Maschinen, die ein Schutzmodul brauchen, **einmal** `vga: qxl`:
```bash
qm set 105 --vga qxl
```
Dann tragen alle künftigen Snapshots es mit, und im Ernstfall gibt es
warmen RAM-Zustand **und** Dongle gleichzeitig.
**Nachträglich lässt sich das bei einem vorhandenen Snapshot nicht mehr
reparieren** — der gespeicherte Zustand enthält die alte Grafikkarte. Es ist
also eine Entscheidung, die man vorher trifft oder gar nicht.
Auf der Produktivmaschine kostet `qxl` nichts außer ein paar Megabyte
Grafikspeicher.
Nachträglich umstellen
Taste ++p++ in der Detailansicht ändert SPICE und USB auch an einer bestehenden Maschine:
Dann die Zahl der Anschlüsse:
| Änderung | |
|---|---|
| SPICE ein oder aus | Neustart nötig — die Grafikkarte lässt sich im Betrieb nicht wechseln |
| USB dazu oder weg | sofort, solange der SPICE-Kanal schon steht |
Ist ein Neustart nötig, warnt pvesnap vorher deutlich:
… und lässt danach die Wahl, wie neu gestartet wird — siehe Damit arbeiten.
!!! danger "Bei geladenem Arbeitsspeicher"
Der ist nach dem Neustart **endgültig weg**. Wer SPICE nachrüstet, um an
den Dongle zu kommen, verliert also genau den warmen Zustand, wegen dem er
vielleicht überhaupt mit `--resume` gestartet ist.
Deshalb: die Entscheidung möglichst **vor** dem ersten Start treffen.
Höchstens 14 Anschlüsse sind möglich — mehr sieht QEMU nicht vor. Für einen Dongle reicht einer; zwei sind bequem, wenn man zusätzlich einen USB-Stick durchreichen will.
Wenn der Dongle nicht auftaucht
| Symptom | woran es liegt |
|---|---|
| Kein Eintrag unter „USB-Geräteauswahl" | Der remote-viewer läuft auf dem falschen Rechner — er muss dort laufen, wo der Dongle steckt. |
Maschine startet nicht, no spice port |
vga: qxl fehlt. In der Detailansicht ++p++ → SPICE ein. |
| Gerät angehakt, im Gast nichts | Manche Dongles brauchen im Gast einen Treiber. Der gehört auf ein Austauschlaufwerk. |
.vv-Datei wird abgewiesen |
Sie ist zu alt — neu erzeugen, das Kennwort gilt nur kurz. |
Unter Linux fehlt remote-viewer |
Paket virt-viewer installieren. |
!!! note "Der Dongle bleibt am Arbeitsplatz"
Er wird nicht in den Host gesteckt und nicht ins Netz gehängt. Genau das ist
der Punkt: Der Weg führt über die SPICE-Verbindung, die ohnehin schon
zwischen Arbeitsplatz und Maschine besteht — und nicht über ein Netz, das
die abgeschottete Maschine gar nicht hat.