Handbuch auf MkDocs-Basis, mit Bildschirmfotos aus dem Programm
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>
This commit is contained in:
co-authored by
Claude Opus 5
parent
c484596702
commit
59e7224297
@@ -0,0 +1,176 @@
|
||||
# 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](einrichten.md#die-optionsmaske) die beiden
|
||||
Felder setzen — oder direkt:
|
||||
|
||||
```bash
|
||||
pvesnap-recovery live 105 --usb 2 --no-resume
|
||||
```
|
||||
|
||||
`--usb` schaltet `--spice` automatisch mit ein.
|
||||
|
||||
Die Zusammenfassung sagt dann, was zu tun ist:
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## Verbinden
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
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](arbeiten.md) ä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](arbeiten.md#neu-starten).
|
||||
|
||||
!!! 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](transfer.md). |
|
||||
| `.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.
|
||||
Reference in New Issue
Block a user