Wie man KVM/QEMU auf Manjaro/Archlinux installiert
KVM ist ein Akronym für Kernel-based Virtual Machine, es ist eine Technologielösung zur Virtualisierung, die auf dem Linux-Kernelmodul basiert. KVM ist eine Open-Source-Softwarelösung, die auf der Linux x86-Maschine mit der Unterstützung der Hardware-Virtualisierungserweiterungen Intel VT oder AMD-V läuft. Das KVM-Kernelmodul wird seit Version 2.6.20 in den Linux-Kernel ausgeliefert und wurde auf andere Betriebssysteme wie FreeBSD und Illumos als ladbare Kernelmodule portiert.
Die KVM-Technologie verwandelt die Linux-Maschine in eine Hypervisor-Virtualisierung, die als Host-Maschine bezeichnet wird. Auf der Host-Maschine wirst du in der Lage sein, mehrere isolierte Systeme, die virtuellen Maschinen (VM) genannt werden, zu erstellen. Jede virtuelle Maschine hat ihr eigenes System (es kann Linux, Windows oder BSD sein), hat auch private virtualisierte Hardware wie Speicher, CPUs, Netzwerkkarte, Festplatte, Grafik, etc.
Was ist QEMU?
QEMU oder Quick Emulator ist ein Open-Source-Systememulator und Virtualisierer für die Hardwarevirtualisierung. Im Allgemeinen wird er als Virtualisierer mit dem KVM-Kernelmodul verwendet, um virtuelle Maschinen zu betreiben. Um große Leistungen für Gastmaschinen/virtuelle Maschinen zu erreichen, nutzt er die Vorteile der Hardwarevirtualisierungserweiterungen wie Intel VT oder AMD-V. Die QEMU/KVM-Virtualisierung wird meist als Hypervisor in einem Rechenzentrum verwendet.
In dieser Anleitung lernst du, wie du die KVM/QEMU-Virtualisierung auf einer Manjaro/Archlinux-Maschine einrichtest. Außerdem lernst du, wie du die erste virtuelle Maschine mit der GUI-Anwendung „virt-manager“ erstellst – eine Desktop-Benutzeroberfläche zur Verwaltung von virtuellen Maschinen.
Voraussetzungen
- Ein Manjaro/Archlinux mit x86 oder 64-bit Architektur.
- Eine CPU/Prozessor mit Virtualisierungsunterstützung (Intel VT oder AMD-V).
- Ein nicht-root Benutzer mit sudo root Rechten.
Überprüfe die Systemarchitektur und die CPU-Virtualisierungsunterstützung
Überprüfe zuerst die Systemarchitektur und die Hardwareunterstützung der Virtualisierungsbeschleunigung Intel VT für Intel CPUs und AMD-v für AMD CPUs.
1. Führe den folgenden Befehl aus, um die Systemarchitektur deines Systems zu überprüfen.
uname -m
Du wirst die folgende Ausgabe erhalten.
Linux machine1 5.4.134-1 #1 SMP PREEMPT Tue Jul 06 08:10:03 UTC 2021 x86_64 GNU/Linux
Wie du siehst, verwenden wir derzeit das Linux-System mit der„x86_64“ oder„64-bit“ Architektur und der Kernelversion„5.4„.
2. Als nächstes überprüfe die Unterstützung der Hardwarevirtualisierung, indem du den folgenden Befehl ausführst.
sudo lscpu | grep Virtualization
Für den Intel Prozessor wirst du eine ähnliche Ausgabe wie unten sehen.
Virtualization: VT-x
Und für AMD Prozessoren, unten ist eine ähnliche Ausgabe.
Virtualization: AMD-V
3. Optional kannst du die verschachtelte Virtualisierung auf deiner Maschine mit dem folgenden Befehl aktivieren.
sudo modprobe -r kvm_intel sudo modprobe kvm_intel nested=1
Danach führe den folgenden Befehl aus, um die verschachtelte Virtualisierung zu überprüfen.
cat /sys/module/kvm_intel/parameters/nested
Wenn du eine Ausgabe wie „Y“ oder „1“ erhältst, bedeutet dies, dass das Feature nested virtualization aktiviert ist. Andernfalls wirst du die Fehlermeldung „No such file or directory“ sehen.
Installieren der QEMU und Virt-Manager Pakete
1. Um die Pakete qemu und virt-manager zu installieren, führe den untenstehenden Befehl aus.
sudo pacman -S qemu virt-manager libvirt virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat ebtables libguestfs
Für das manjaro System wird es einen Paketkonflikt zwischen„iptables“ und„ebtables“ geben. Gib„y“ ein, um das standardmäßige iptables-Paket zu entfernen und es durch„ebtables“ und„nftables“ zu ersetzen.
Unten sind essentielle Pakete, die du kennen musst:
- qemu: Ein Open-Source-Maschinenemulator und Virtualisierer.
- virt-manager: Eine GUI-Anwendung zur Verwaltung von virtuellen Maschinen.
- libvirt: Eine API zur Steuerung von Virtualisierungs-Engines wie KVM, QEMU, etc.
- dnsmasq: Leichtgewichtiger DNS-Forwarder und DHCP-Server.
- bridge-utils: Hilfsprogramme für die Konfiguration von Linux-Ethernet-Bridges.
- libguestfs: Set von Werkzeugen zum Modifizieren von Festplattenimages virtueller Maschinen (VM).
2. Als nächstes starte und aktiviere den libvirtd Dienst mit dem folgenden Befehl.
sudo systemctl enable --now libvirtd
Du wirst eine ähnliche Ausgabe wie unten erhalten.
Created symlink /etc/systemd/system/multi-user.target.wants/libvirtd.service ? /usr/lib/systemd/system/libvirtd.service. Created symlink /etc/systemd/system/sockets.target.wants/virtlockd.socket ? /usr/lib/systemd/system/virtlockd.socket. Created symlink /etc/systemd/system/sockets.target.wants/virtlogd.socket ? /usr/lib/systemd/system/virtlogd.socket. Created symlink /etc/systemd/system/sockets.target.wants/libvirtd.socket ? /usr/lib/systemd/system/libvirtd.socket. Created symlink /etc/systemd/system/sockets.target.wants/libvirtd-ro.socket ? /usr/lib/systemd/system/libvirtd-ro.socket.
3. Danach führe den folgenden Befehl aus, um den Status des libvirtd-Dienstes zu überprüfen.
sudo systemctl status libvirtd
Und du solltest eine ähnliche Ausgabe wie unten sehen. Wie du siehst, ist der libvritd Dienst aktiv und läuft.
? libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2021-07-23 10:33:25 UTC; 6s ago TriggeredBy: ? libvirtd-ro.socket ? libvirtd.socket ? libvirtd-admin.socket Docs: man:libvirtd(8) https://libvirt.org Main PID: 16828 (libvirtd) Tasks: 19 (limit: 32768) Memory: 16.4M CPU: 226ms CGroup: /system.slice/libvirtd.service ??16828 /usr/bin/libvirtd --timeout 120
Erlaube Nicht-Root-Benutzern die KVM/QEMU-Virtualisierung zu nutzen
Standardmäßig kann nur der Benutzer „root“ virtuelle Maschinen erstellen und verwalten. Um Nicht-Root-Benutzern zu erlauben, virtuelle Maschinen zu erstellen und zu verwalten, solltest du der folgenden libvirtd-Konfiguration folgen.
1. Führe den folgenden Befehl aus, um die libvirtd-Konfiguration zu bearbeiten.
sudo nano /etc/libvirt/libvirtd.conf
Entkommentiere die Option„unix_sock_group“ und gib den Gruppennamen als„libvirt“ ein.
# Set the UNIX domain socket group ownership. This can be used to # allow a 'trusted' set of users access to management capabilities # without becoming root. # # This setting is not required or honoured if using systemd socket # activation. # # This is restricted to 'root' by default. unix_sock_group = "libvirt"
Danach entkommentiere die Option„unix_sock_rw_perms“ und belasse die Berechtigung als Standard„0770„.
# Set the UNIX socket permissions for the R/W socket. This is used # for full management of VMs # # This setting is not required or honoured if using systemd socket # activation. # # Default allows only root. If PolicyKit is enabled on the socket, # the default will change to allow everyone (eg, 0777) # # If not using PolicyKit and setting group ownership for access # control, then you may want to relax this too. unix_sock_rw_perms = "0770"
Speichere die Konfiguration, indem du die Strg+x Taste drückst und y eingibst, dann Enter.
2. Als nächstes füge deinen Benutzer mit dem folgenden Befehl zur Gruppe„libvirt“ hinzu.
sudo usermod -a -G libvirt username
3. Danach starte den libvirtd Dienst neu, um die neue Konfiguration anzuwenden.
sudo systemctl restart libvirtd
Nun werden alle Benutzer innerhalb der Gruppe „libvirt“ in der Lage sein, virtuelle Maschinen zu erstellen und zu konfigurieren.
Überprüfe die QEMU/KVM Installation mit virt-manager
Öffne nun die Anwendung„virt-manager“ aus deinem Anwendungsmenü.
1. Klicke auf das Menü „Bearbeiten -> Verbindungsdetails“ in der virt-manager Anwendung.
2. Auf dem Reiter„Übersicht“ siehst du, dass sich der virt-manager automatisch mit„qemu:///system“ verbindet.
3. Gehe auf den Reiter„Virtuelle Netzwerke“ und du wirst die„Standard“ Netzwerkkonfiguration sehen.
- Schnittstelle: virbr0
- Automatischer Start beim Booten: ja
- IP-Adresse: 192.168.122.0/24
- Bereich DHCP IP-Adresse: 192.168.122.2 – 192.168.122.254
- Typ Netzwerk: NAT
4. Gehe nun auf den Reiter„Storage„, und du siehst die „Standard“ Pool Storage Konfiguration.
- Typ: Dateisystemverzeichnis
- Größe: Hängt von deiner Festplatte ab
- Ort: /var/lib/libvirt/images
- Automatischer Start beim Booten: ja
Alle Images der virtuellen Maschinen werden auf diesem Standardspeicher, dem Verzeichnis„/var/lib/libvirt/images„, verfügbar sein.
5. Klicke als nächstes auf den Button„+„, um einen neuen Poolspeicher für ISO-Image-Dateien zu erstellen. Alle ISO Dateien der Betriebssysteme werden in diesem Pool verfügbar sein.
Folge der Speicherkonfigration wie unten beschrieben:
- Name: ISO
- Typ: dir: Filesystem Directory
- Zielpfad: /pfad/verzeichnis/zu/ihr/iso/
Klicke auf den„Finish“ Button, um den Prozess abzuschließen. Danach bist du bereit, neue virtuelle Maschinen zu erstellen.
Neue virtuelle Maschine mit dem virt-manager erstellen
1. Klicke in der virt-manager Anwendung auf den Button„+„, um eine neue virtuelle Maschine zu erstellen.
2. Wähle„Lokale Installationsmedien„, um das ISO-Image für die Installation zu verwenden und klicke auf den Button„Weiter„, um fortzufahren.
3. Klicke auf den Button„Durchsuchen„, um die ISO-Datei auszuwählen.
Wähle nun den Poolspeicher„ISO“ und wähle die ISO-Datei für die Installation aus (für dieses Beispiel ist das„Debian 10„), dann klicke auf„Volume wählen„.
Deaktiviere die Option„Automatisch vom Installationsmedium/Quelle erkennen„, gib das zu installierende Betriebssystem ein (für dieses Beispiel ist das„Debian 10„), dann klicke wieder auf den„Weiter„-Button, um fortzufahren.
4. Wähle wie viel Speicher und CPU für die virtuelle Maschine, dann klicke auf„Weiterleiten„.
5. Wähle wie viel Festplattenspeicher für die virtuelle Maschine und klicke auf„Weiter„.
6. Überprüfe deine Konfiguration und klicke auf„Fertigstellen“ um zu installieren.
7. Nun ist die virtuelle Maschine mit QEMU/KVM Virtualisierung eingerichtet und du kannst mit der Installation des Betriebssystems fortfahren.
Fazit
Herzlichen Glückwunsch! Du hast gelernt, wie man die QEMU/KVM-Virtualisierung auf einer Manjaro/Archlinux-Maschine einrichtet. Außerdem hast du gelernt, wie du die virt-manager Anwendung zum Erstellen von virtuellen Maschinen verwendest. Nun kannst du virtuelle Maschinen mit deinem bevorzugten Betriebssystem erstellen. Du kannst eine andere Linux-Distribution, Windows oder ein BSD-Betriebssystem verwenden.