Inhaltsverzeichnis
ArchLinux - Virtualisierung Gast Konfiguration
Bekanntlich führen viele Wege nach Rom, deswegen erhebt diese Beschreibung auch keinen Anspruch auf die einzige Wahre Lösung! Vielmehr ist es ein Versuch einen Gast einer Virtualisierungsumgebung mit ArchLinux zu konfigurieren.
Beschreibung | Externer Link |
---|---|
Homepage | https://www.archlinux.de/ |
Herunterladen | https://www.archlinux.de/download |
Dokumentation | https://wiki.archlinux.de/title/Hauptseite |
Installation | https://wiki.archlinux.de/title/Anleitung_für_Einsteiger |
- QEMU | https://wiki.archlinux.org/index.php/QEMU |
- libvirt | https://wiki.archlinux.org/index.php/Libvirt |
Die hier vorgestellte Möglichkeit dies zu realisieren soll möglichst nach folgenden Vorgaben erfolgen:
- möglichst nur mit Bordmitteln
- möglichst wenig externen Paketen/Programmen/Quellen
- einfache Realisierung
Ab hier werden root
-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um der Benutzer root
zu werden, geben Sie bitte nachfolgenden Befehl ein:
$ su - Password:
Vorbereitung
Es soll als Grundlage eine Installation in den Varianten:
oder
und die zusätzlich noch benötigten Installationen für das
durchgeführt werden.
Installation
Nachfolgende Pakete ermöglichen den erweiterten Zugriff vom Wirt-System auf eine Gast-System.
qemu-guest-agent
- Erweiterter Zugriff vom Wirt-System auf das Gast-System.
# pacman -S qemu-guest-agent
Dienst/Daemon einrichten
Damit nach einem Neustart des Servers auch die Virtualisierungsumgebung zur Verfügung steht, muss der qemu-guest-agent
-Dienst/Daemon gestartet werden, was mit nachfolgendem Befehl eingerichtet werden muss:
# systemctl enable qemu-guest-agent.service Created symlink /etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service → /usr/lib/systemd/system/qemu-guest-agent.service.
Eine Überprüfung, ob beim Neustart des Server der qemu-guest-agent
-Dienst/Daemon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:
# systemctl list-unit-files --type=service | grep -E ^qemu-guest-agent qemu-guest-agent.service enabled disabled
bzw.
# systemctl is-enabled qemu-guest-agent.service enabled
Dienst: qemu-guest-agent starten
Anschliessend kann der Dienst/Daemon gestartet werden, was mit nachfolgendem Befehl durchgeführt wird:
# systemctl start qemu-guest-agentd.service
und mit nachfolgendem Befehl überprüft werden, ob der Start auch erfolgreich funktioniert hat:
# systemctl status qemu-guest-agent.service ● qemu-guest-agent.service - QEMU Guest Agent Loaded: loaded (/usr/lib/systemd/system/qemu-guest-agent.service; enabled;> Active: active (running) since Sun 2022-01-30 07:40:17 CET; 11min ago Main PID: 398 (qemu-ga) Tasks: 2 (limit: 2341) Memory: 1.1M CPU: 5ms CGroup: /system.slice/qemu-guest-agent.service └─398 /usr/bin/qemu-ga Jan 30 07:40:17 server systemd[1]: Started QEMU Guest Agent.
KVM virsh Konsolenzugriff
Nachfolgende Konfiguration ermöglicht es mit dem Kommandozeilenbefehl virsh
Zugriff auf eine Konsole zu erhalten.
VM-Konfigurieren
Damit auf ein virtuelle Maschine mittels dem Kommandozeilenbefehl virsh
auf eine Konsole zu gegriffen werden kann, muss diese die nachfolgenden „Hardware“-Komponenten konfiguriert haben:
Hardware Typ | Hardware Konfiguration | Hardware XML |
---|---|---|
Serial Device 1 (Primary Console) | Device Type: pty Source path: /dev/pts/1 | <serial type="pty"> <source path="/dev/pts/1"/> <target type="isa-serial" port="0"> <model name="isa-serial"/> </target> <alias name="serial0"/> </serial> |
Console Device 2 | Device Type: pty Source path: /dev/pts/2 Target type: virtio | <console type="pty"> <source path="/dev/pts/2"/> <target type="virtio" port="1"/> <alias name="console1"/> </console> |
Zur Ergänzung der Hardware-Ressourcen innerhalb des Befehls virt-install
sind nachfolgende Parameter dem Befehl hinzuzufügen:
(Nur relevanter Ausschnitt):
# virt-install ... --serial pty --console pty,target.type=virtio ...
Dienst: serial-getty@ttyS0.service
In der virtuellen Maschine muss nachfolgender Daemon/Dienst serial-getty@ttyS0.service
gestartet sein, damit über den Kommandozeilenbefehl virsh
auf eine Konsole zu gegriffen werden kann:
Damit nach einem Neustart des Servers auch über den Kommandozeilenbefehl virsh
auf eine Konsole zu gegriffen werden kann, muss der serial-getty@ttyS0.service
-Dienst/Daemon gestartet werden, was mit nachfolgendem Befehl eingerichtet werden muss:
# systemctl enable serial-getty@ttyS0.service Created symlink /etc/systemd/system/multi-user.target.wants/serial-getty@ttyS0.service → /usr/lib/systemd/system/serial-getty@ttyS0.service.
Eine Überprüfung, ob beim Neustart des Server der serial-getty@ttyS0.service
-Dienst/Daemon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:
# systemctl list-unit-files --type=service | grep -E ^serial-getty@ttyS0 serial-getty@ttyS0.service enabled disabled
bzw.
# systemctl is-enabled serial-getty@ttyS0.service enabled
Anschliessend kann der Dienst/Daemon gestartet werden, was mit nachfolgendem Befehl durchgeführt wird:
# systemctl start serial-getty@ttyS0.service
und mit nachfolgendem Befehl überprüft werden, ob der Start auch erfolgreich funktioniert hat:
# systemctl status serial-getty@ttyS0.service ● serial-getty@ttyS0.service - Serial Getty on ttyS0 Loaded: loaded (/usr/lib/systemd/system/serial-getty@.service; enabled; ve> Active: active (running) since Sun 2022-01-30 11:22:32 CET; 41min ago Docs: man:agetty(8) man:systemd-getty-generator(8) http://0pointer.de/blog/projects/serial-console.html Main PID: 418 (agetty) Tasks: 1 (limit: 2341) Memory: 192.0K CPU: 7ms CGroup: /system.slice/system-serial\x2dgetty.slice/serial-getty@ttyS0.serv> └─418 /sbin/agetty -o "-p -- \\u" --keep-baud 115200,57600,38400,9> Jan 30 11:22:32 vml250 systemd[1]: Started Serial Getty on ttyS0.
virsh: Konsolenzugriff
Mit nachfolgendem Befehl kann eine Auflistung aller virtuellen Maschinen ausgegeben werden, welcher als Vorbereitung zum Zugriff über den Kommandozeilenbefehl virsh
auf eine Konsole dienen kann:
# virsh list --all Id Name State ------------------------ 1 server running
Nachfolgender Befehl eröffnet über den Kommandozeilenbefehl virsh
eine Konsole zum Zugriff auf die entsprechende virtuelle Maschine:
# virsh console server Connected to domain 'server' Escape character is ^] (Ctrl + ])
Durch drücken der [Enter/Return]-Taste erscheint ein „Login-Prompt“ der virtuellen Maschine, wie nachfolgend dargestellt:
# virsh console server Connected to domain 'server' Escape character is ^] (Ctrl + ]) server login:
Beendet kann der Zugriff auf eine Konsole über den Kommandozeilenbefehl virsh
über die Tastenkombination [Ctrl + ]] bzw. [Ctrl + Alt Gr + 9]