Server:KVM-Konsole

Aus manitu Wiki
Zur Navigation springen Zur Suche springen

Über die in unserem Rettungs-System zur Verfügung stehende QEMU-Installation ist es möglich, das installierte System Ihres Servers innerhalb einer virtuellen Maschine (VM) zu booten. Die Ein- und Ausgabe der VM wird dabei direkt auf die aktuell offene SSH-Session umgeleitet.

Damit können beispielsweise Fehler nachvollzogen werden, die im (frühen) Boot-Prozess auftreten, wie beispielsweise eine fehlerhafte Bootloader-Konfiguration oder ein defekter Kernel.

Wichtig: Unter allen Umständen müssen alle Dateisysteme vorab unmounted und alle eventuell vorhandenen RAID-Devices gestoppt werden! Andernfalls kann es bei unbeabsichtigten Zugriffen durch das Host-System zu Datenverlust kommen.

Der Befehlsaufruf richtet sich hier nach der physikalischen Ausstattung Ihres Servers, im Regelfall muss hier leidglich die Konfiguration der Festplatten angepasst werden. Für die Festplatten-Konfiguration wird der Parameter

-drive format=raw,file=/dev/sdN

für alle vorhandenen (physikalischen) Festplatten hinzugefügt. RAID-Devices müssen hier nicht berücksichtigt werden, da diese später im installierten System assembliert werden.

Eine virtuelle Maschine, die einen Server mit zwei verbauten Festplatten "abbildet", wird exemplarisch mit folgendem Befehl gestartet:

qemu-system-x86_64 \
 -curses \
 -m 2048 \
 -drive format=raw,file=/dev/sda \
 -drive format=raw,file=/dev/sdb \
 -device e1000,netdev=user,mac=NN:NN:NN:NN:NN:NN \
 -netdev user,id=user,hostfwd=tcp::5555-:22

Über den Parameter -m wird der innerhalb der VM zur Verfügung stehende RAM in Megabyte angegeben. Bei einer Anpassung ist darauf zu achten, dass für das Rettungssystem selbst ca. 2 GB Speicherplatz zur Verfügung stehen müssen und daher nicht der VM zugeteilt werden sollten.

Mittels ,hostfwd=tcp::5555-:22 wird Port 22 des Gast-Systems auf Port 5555 des Hostsystems gemapped, sodass in diesem Beispiel der SSH-Zugang des installierten Systems nach dem Boot der VM über Port 5555 erreichbar ist. Bitte hinterlegen Sie für mac=NN:NN:NN:NN:NN:NN die MAC-Adresse, die dem externen Netzwerk-Interface Ihres Servers zugewiesen ist.

Nachdem die Wartungsarbeiten abgeschlossen ist, fahren Sie bitte das in der VM gebootete Betriebssystem "regulär" herunter, um die VM zu beenden. Anschließend kann dann der Server selbst neu gebootet werden.

Nutzung von VNC zur Ein- und Ausgabe

Einige neuere Distributionen realisieren ohne weitere Konfiguration die Terminal-Ausgabe leider nicht im "Nur-Text-Modus". Damit kann oben beschriebene Methode nicht direkt genutzt werden, stattdessen muss auf einen zusätzlichen VNC-Client (wie z.B. den VNC Viewer von RealVNC) zurückgegriffen werden.

Nachfolgender Befehl startet oben beschriebene VM mit einem VNC-Server auf Port 5900. Nachdem die VM gestartet ist, kann dann direkt über die Rettungssystem-IP und diesen Port auf die VNC-Konsole zugegriffen werden.

Hinweis: Ein Passwort (im Beispiel PASSWORT123) muss unter allen Umständen gesetzt werden, da ansonsten der direkte Zugriff auf Ihren Server ohne weitere Authentifizierung möglich ist!

printf "change vnc password\n%s\n" PASSWORT123 | \
 qemu-system-x86_64 -vnc :0,password \
 -monitor stdio \
 -m 2048 \
 -drive format=raw,file=/dev/sda \
 -drive format=raw,file=/dev/sdb \
 -device e1000,netdev=user,mac=NN:NN:NN:NN:NN:NN \
 -netdev user,id=user,hostfwd=tcp::5555-:22