Wer Ubuntu als Host für virtuelle Maschinen nutzen möchte, findet mit KVM und QEMU eine sehr starke und professionelle Lösung. Gerade für Linux-Administratoren, IT-Studenten und Lernende ist dieses Thema besonders wichtig, weil Virtualisierung heute in fast jeder modernen IT-Umgebung eine Rolle spielt. Ob Testsysteme, Schulungslabore, Entwicklungsumgebungen oder mehrere Server auf einem physischen Host: Virtuelle Maschinen helfen dabei, Systeme sauber zu trennen und flexibel zu verwalten. Ubuntu dokumentiert KVM und QEMU offiziell als zentrale Werkzeuge für Virtualisierung auf Ubuntu Server und nennt dabei auch libvirt als wichtige Verwaltungsbasis. Für Anfänger wirken Begriffe wie Hypervisor, libvirt, virt-install oder Bridge-Netzwerk am Anfang oft technisch. In der Praxis lässt sich das aber gut verstehen, wenn man Schritt für Schritt vorgeht. Genau das ist das Ziel dieses Tutorials. Sie lernen hier, wie Ubuntu als Host für virtuelle Maschinen mit KVM und QEMU eingerichtet wird, welche Pakete gebraucht werden, wie die Verwaltung mit libvirt funktioniert und welche Best Practices für einen sauberen und professionellen Betrieb wichtig sind. :contentReference[oaicite:0]{index=0}
Was sind KVM und QEMU unter Ubuntu?
QEMU ist ein Virtualisierungs- und Emulationswerkzeug. KVM steht für Kernel-based Virtual Machine und bringt die Hardware-Virtualisierung direkt in den Linux-Kernel ein. In der Praxis arbeiten beide oft zusammen: QEMU stellt die eigentliche Maschinenumgebung bereit, während KVM die Hardware-Unterstützung für deutlich bessere Leistung nutzt. Ubuntu beschreibt QEMU/KVM offiziell genau in diesem Zusammenhang als Weg, virtuelle Maschinen mit Hardware-Virtualisierung und libvirt-Verwaltung auf Ubuntu Server zu betreiben. :contentReference[oaicite:1]{index=1}
Für Anfänger kann man es so zusammenfassen: QEMU erzeugt die virtuelle Maschine, KVM macht sie schneller, weil echte Virtualisierungsfunktionen der CPU genutzt werden. Darüber liegt oft noch libvirt als Verwaltungsschicht. Genau diese Kombination ist unter Ubuntu sehr verbreitet und wird auch von den offiziellen Ubuntu-Dokumentationen als Standardweg für QEMU/KVM-Setups beschrieben. :contentReference[oaicite:2]{index=2}
Warum Ubuntu als Host für virtuelle Maschinen gut geeignet ist
Ubuntu wird sehr häufig als Server- und Virtualisierungsplattform genutzt. Die offizielle Ubuntu-Server-Dokumentation hat einen eigenen Bereich für Virtualisierung und beschreibt dort mehrere Werkzeuge, darunter QEMU, libvirt und virt-manager. Das zeigt, dass Ubuntu nicht nur grundsätzlich virtualisieren kann, sondern dafür auch aktiv dokumentierte und gepflegte Wege anbietet. Für Lernende ist das besonders praktisch, weil es viele offizielle Beispiele und klare Paketnamen gibt. :contentReference[oaicite:3]{index=3}
Typische Einsatzbereiche
- Test- und Laborumgebungen
- Entwicklungs- und Schulungssysteme
- Mehrere Server auf einem Host
- Virtuelle Linux- oder Windows-Gastsysteme
- Netzwerk- und Infrastruktur-Tests
Wichtige Bausteine: KVM, QEMU und libvirt
Wenn Sie Ubuntu als Host für virtuelle Maschinen mit KVM und QEMU nutzen möchten, sollten Sie auch libvirt verstehen. Ubuntu beschreibt libvirt als Toolkit und API für die Verwaltung von Virtualisierung. In der Praxis ist libvirt die zentrale Verwaltungsschicht, mit der Werkzeuge wie virsh, virt-install und virt-manager arbeiten. Genau dadurch wird die Verwaltung von virtuellen Maschinen deutlich einfacher und strukturierter. :contentReference[oaicite:4]{index=4}
Die Rollen einfach erklärt
- KVM liefert Hardware-Virtualisierung im Kernel.
- QEMU stellt die virtuelle Maschine bereit.
- libvirt verwaltet und steuert die Virtualisierung.
- virsh ist ein CLI-Werkzeug für libvirt.
- virt-manager ist eine grafische Verwaltung.
Vor der Installation: Hardware-Virtualisierung prüfen
Bevor Sie mit der Installation beginnen, sollten Sie prüfen, ob Ihr Prozessor Hardware-Virtualisierung unterstützt. KVM braucht diese Unterstützung, damit virtuelle Maschinen effizient laufen können. Typische CPU-Flags dafür sind vmx bei Intel und svm bei AMD. Ohne diese Funktionen kann QEMU zwar in manchen Fällen trotzdem arbeiten, aber die Leistung und Eignung für echte VM-Hosts sind deutlich schlechter.
CPU-Flags prüfen
egrep -c '(vmx|svm)' /proc/cpuinfo
Wenn das Ergebnis größer als 0 ist, erkennt das System passende Virtualisierungsfunktionen. In vielen Umgebungen muss diese Funktion zusätzlich im BIOS oder UEFI aktiviert sein.
Virtualisierungsstatus genauer prüfen
lscpu | grep Virtualization
Ubuntu vorbereiten und aktualisieren
Wie bei jeder sauberen Server- oder Virtualisierungskonfiguration sollte das System zuerst aktualisiert werden. Gerade ein VM-Host sollte mit einem aktuellen Paketstand arbeiten, damit KVM, QEMU, libvirt und die restlichen Komponenten sauber zusammenspielen.
Paketlisten aktualisieren
sudo apt update
Pakete aktualisieren
sudo apt upgrade -y
KVM und QEMU unter Ubuntu installieren
Ubuntu dokumentiert für QEMU/KVM eine Installation mit libvirt-Verwaltung. Für einen typischen Host werden neben QEMU und KVM meist auch libvirt und zusätzliche Werkzeuge installiert. Ubuntu nennt in seinen Virtualisierungsanleitungen die Kombination aus QEMU, libvirt und zusätzlichen Tools als Standardweg für die Verwaltung virtueller Maschinen. :contentReference[oaicite:5]{index=5}
Wichtige Pakete installieren
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst -y
Wenn Sie eine grafische Oberfläche nutzen oder einen Remote-Host bequem verwalten möchten, ist zusätzlich virt-manager sinnvoll. Ubuntu dokumentiert virt-manager offiziell als grafisches Verwaltungswerkzeug für lokale und entfernte virtuelle Maschinen. :contentReference[oaicite:6]{index=6}
Optional: grafische Verwaltung installieren
sudo apt install virt-manager -y
libvirt-Dienst prüfen
Nach der Installation sollte der libvirt-Dienst geprüft werden. Dieser Dienst ist für die Verwaltung der virtuellen Maschinen sehr wichtig. Wenn libvirt sauber läuft, können Sie VMs später mit virsh, virt-install oder virt-manager verwalten.
Status prüfen
sudo systemctl status libvirtd
Dienst aktivieren
sudo systemctl enable --now libvirtd
In modernen Ubuntu-Setups ist libvirt der zentrale Verwaltungsweg für KVM/QEMU-Instanzen. Die offizielle Ubuntu-Dokumentation zeigt libvirt genau in dieser Rolle. :contentReference[oaicite:7]{index=7}
Benutzerrechte für KVM und libvirt setzen
Wer virtuelle Maschinen nicht nur mit sudo, sondern komfortabler verwalten möchte, muss meist in die passenden Gruppen aufgenommen werden. Die Ubuntu-Hilfe beschreibt ausdrücklich, dass Benutzer für KVM- und libvirt-Verwaltung häufig den Gruppen kvm und libvirtd hinzugefügt werden. Danach ist meist eine neue Anmeldung nötig, damit die Gruppenrechte aktiv werden. :contentReference[oaicite:8]{index=8}
Aktuellen Benutzer zu den Gruppen hinzufügen
sudo adduser $(id -un) kvm
sudo adduser $(id -un) libvirtd
Danach sollten Sie sich neu anmelden oder die Sitzung neu starten, damit die Gruppenmitgliedschaften wirksam werden.
Prüfen, ob KVM wirklich nutzbar ist
Nach der Paketinstallation sollten Sie testen, ob libvirt den Host korrekt erkennt und ob KVM als Virtualisierungsbasis verfügbar ist. Ein wichtiger Befehl dafür ist virsh. Ubuntu beschreibt virsh als CLI-Werkzeug für das Starten, Stoppen und Verwalten virtueller Maschinen über libvirt. :contentReference[oaicite:9]{index=9}
Mit libvirt verbinden
virsh list --all
Wenn die Verbindung funktioniert, sehen Sie eine Liste der vorhandenen VMs, auch wenn sie leer ist.
Libvirt-URI prüfen
virsh uri
Typischerweise sehen Sie unter Ubuntu eine Verbindung wie qemu:///system. Die Ubuntu-Manpage von virt-install beschreibt genau diese URI als Standard für die meisten KVM-Anwender. :contentReference[oaicite:10]{index=10}
Das Standardnetzwerk von libvirt verstehen
Ubuntu dokumentiert, dass die Standard-Netzwerkkonfiguration von libvirt üblicherweise NAT-basiert arbeitet. Das bedeutet: Virtuelle Maschinen hängen in einem internen libvirt-Netz und erreichen externe Netze meist per NAT über den Host. Ubuntu erklärt ausdrücklich, dass das Standardnetzwerk NAT und iptables-Regeln nutzt und Verkehr typischerweise über den Host nach außen leitet. :contentReference[oaicite:11]{index=11}
Für viele Lern- und Testumgebungen ist dieses Standardnetz ideal. Die VM kommt ins Netz, ohne dass Sie sofort eine eigene Bridge konfigurieren müssen. Für produktive Server oder Systeme, die wie normale Hosts im gleichen LAN erscheinen sollen, ist oft ein echtes Bridge-Netzwerk sinnvoller.
Netzwerke anzeigen
virsh net-list --all
Standardnetzwerk starten
sudo virsh net-start default
Standardnetzwerk automatisch aktivieren
sudo virsh net-autostart default
Wann NAT genügt und wann eine Bridge besser ist
Das libvirt-Standardnetz mit NAT genügt für viele einfache Fälle. Wenn eine VM Updates laden, Tests durchführen oder nach außen kommunizieren soll, reicht dieses Modell oft völlig aus. Sobald eine virtuelle Maschine aber direkt wie ein eigener Server im lokalen Netzwerk erreichbar sein soll, ist eine Bridge meist besser. Ubuntu dokumentiert ausdrücklich, dass für direkte Erreichbarkeit von außen eine andere Bridge-Art als das Standard-NAT-Netz nötig ist, sodass Gäste wie normale Hosts im Netzwerk erscheinen. :contentReference[oaicite:12]{index=12}
Einfacher Unterschied
- NAT ist leicht einzurichten und gut für Tests.
- Bridge ist besser, wenn VMs direkt im LAN sichtbar sein sollen.
- NAT trennt die VMs stärker vom physischen Netz.
- Bridge macht VMs netzwerktechnisch „normaler“.
Eine virtuelle Maschine mit virt-install erstellen
Für die CLI-basierte Einrichtung ist virt-install besonders praktisch. Ubuntu stellt für virt-install eine Manpage bereit und dokumentiert es zusammen mit virt-manager und weiteren Werkzeugen als Standardtooling rund um libvirt. Die Manpage beschreibt, dass ISO-Dateien lokal verwendet werden können und dass sich virtuelle Maschinen damit komplett per Kommandozeile anlegen lassen. :contentReference[oaicite:13]{index=13}
Beispiel: VM mit ISO erstellen
virt-install
--name ubuntu-test01
--memory 2048
--vcpus 2
--disk size=20
--cdrom /var/lib/libvirt/images/ubuntu.iso
--osinfo ubuntu24.04
--network network=default
--graphics vnc
Dieses Beispiel erstellt eine einfache VM mit 2 GB RAM, 2 virtuellen CPUs, 20 GB Platte und einer ISO als Installationsmedium. Das Standardnetzwerk wird hier über libvirt genutzt.
Virtuelle Maschinen mit qcow2-Images nutzen
Ubuntu dokumentiert auch die Nutzung von QCOW-Images mit libvirt. QCOW2 ist ein sehr verbreitetes Festplattenformat für QEMU/KVM. Canonical beschreibt in der Public-Images-Dokumentation, dass libvirt und Werkzeuge wie virt-manager für das Starten solcher Images geeignet sind. :contentReference[oaicite:14]{index=14}
Vorhandene qcow2-Datei verwenden
virt-install
--name ubuntu-import01
--memory 2048
--vcpus 2
--disk path=/var/lib/libvirt/images/ubuntu-import01.qcow2,format=qcow2
--import
--osinfo ubuntu24.04
--network network=default
--graphics none
Der Parameter –import ist laut Ubuntu-Manpage genau dafür gedacht, eine VM aus einem bereits vorhandenen Image zu definieren, ohne den normalen Installationsprozess zu durchlaufen. :contentReference[oaicite:15]{index=15}
Virtuelle Maschinen mit virsh verwalten
Wenn die VM einmal angelegt ist, wird virsh zum sehr wichtigen Verwaltungswerkzeug. Sie können damit Maschinen starten, stoppen, auflisten und detailliert prüfen. Ubuntu beschreibt virsh ausdrücklich als besonders nützlich für fortgeschrittene Administratoren und für Automatisierung. :contentReference[oaicite:16]{index=16}
Alle VMs anzeigen
virsh list --all
VM starten
virsh start ubuntu-test01
VM sauber herunterfahren
virsh shutdown ubuntu-test01
VM hart stoppen
virsh destroy ubuntu-test01
VM beim Hoststart automatisch starten
virsh autostart ubuntu-test01
Virt-manager für grafische Verwaltung nutzen
Wer lieber mit einer GUI arbeitet, kann unter Ubuntu virt-manager verwenden. Ubuntu dokumentiert virt-manager offiziell als grafisches Verwaltungswerkzeug für lokale und entfernte VMs mit libvirt. Besonders für Anfänger ist das hilfreich, weil Netzwerke, Speicher und Installationsmedien dort visuell einfacher zu verstehen sind. :contentReference[oaicite:17]{index=17}
Virt-manager starten
virt-manager
In Desktop-Umgebungen können Sie damit lokale libvirt-Hosts direkt öffnen. Für Remote-Server lässt sich virt-manager ebenfalls nutzen, solange die Verbindung passend eingerichtet ist.
Bridge-Netzwerk unter Ubuntu professionell einrichten
Für produktive VMs, die wie normale Rechner im LAN sichtbar sein sollen, ist eine Bridge oft die bessere Lösung. Ubuntu erklärt, dass die Standard-NAT-Konfiguration für direkte Erreichbarkeit von externen Hosts nicht ausreicht und eine andere Bridge-Konfiguration nötig ist. Ubuntu verweist in diesem Zusammenhang auch auf Netplan-Beispiele für Bridge-Setups. :contentReference[oaicite:18]{index=18}
Ein einfaches Netplan-Beispiel für eine Bridge
network:
version: 2
renderer: networkd
ethernets:
enp0s3: {}
bridges:
br0:
interfaces:
- enp0s3
dhcp4: true
Nach dem Anlegen einer Bridge kann libvirt so konfiguriert werden, dass eine VM an br0 gebunden wird. Damit erscheint sie im Netz oft wie ein normaler eigener Host.
Ressourcen für VMs bewusst planen
Ein professioneller VM-Host braucht eine bewusste Ressourcenplanung. Zu viele VMs mit zu viel RAM, CPU oder Speicher können den Host schnell überlasten. Gerade Anfänger sollten nicht versuchen, möglichst viele virtuelle Maschinen auf einmal zu starten, sondern lieber klein und sauber planen.
Wichtige Planungsfragen
- Wie viel RAM hat der Host insgesamt?
- Wie viele vCPUs sind realistisch?
- Wie schnell ist der Storage?
- Welche VMs müssen wirklich gleichzeitig laufen?
Gerade Festplattenleistung und RAM sind für KVM/QEMU-Hosts im Alltag oft sehr wichtige Faktoren.
Die wichtigsten Dateien und Verzeichnisse kennen
Im Alltag mit libvirt und QEMU ist es hilfreich, einige Standardpfade zu kennen. Dort liegen häufig VM-Definitionen, Images oder ISO-Dateien.
Wichtige Pfade
- /var/lib/libvirt/images/ für VM-Disk-Images
- /etc/libvirt/ für libvirt-Konfigurationen
- /var/log/libvirt/ für Logs
Images anzeigen
ls -lh /var/lib/libvirt/images/
Mit diesem Überblick können Sie schneller nachvollziehen, wo VM-Daten tatsächlich liegen.
Logs und Status für die Fehlersuche nutzen
Wer Ubuntu als Host für virtuelle Maschinen professionell verwalten möchte, sollte Logs und Statusinformationen regelmäßig prüfen. Besonders bei Problemen mit Start, Netzwerk oder Storage sind diese Informationen sehr wichtig.
libvirt-Status prüfen
sudo systemctl status libvirtd
VM-Details anzeigen
virsh dominfo ubuntu-test01
Netzwerke prüfen
virsh net-list --all
Storage-Pools prüfen
virsh pool-list --all
Mit diesen Befehlen bekommen Sie schnell einen guten Überblick über den Zustand Ihres Hosts.
Typische Fehler bei KVM und QEMU unter Ubuntu vermeiden
Viele Probleme entstehen nicht durch schwierige Virtualisierung, sondern durch kleine Vorbereitungsfehler. Gerade Anfänger sollten typische Stolperfallen kennen.
Häufige Fehler
- Hardware-Virtualisierung ist im BIOS oder UEFI deaktiviert.
- Der Benutzer ist nicht in den Gruppen kvm und libvirtd.
- libvirt läuft nicht korrekt.
- ISO-Datei oder Image-Pfad ist falsch.
- Das Netzwerkmodell passt nicht zum Einsatzzweck.
- Zu viele Ressourcen werden an VMs vergeben.
Was besser funktioniert
- Zuerst CPU-Virtualisierung prüfen
- Dann KVM/QEMU/libvirt sauber installieren
- Mit einer kleinen Test-VM beginnen
- Erst danach Bridging und komplexere Setups ergänzen
Eine sinnvolle Lernstrategie für Anfänger und Fortgeschrittene
Auch wenn das Thema professionell wirkt, sollten Sie nicht direkt mit komplexen Netzwerken, mehreren Storage-Pools und automatisierten Builds beginnen. Der beste Weg ist: erst KVM/QEMU und libvirt grundsätzlich verstehen, dann eine Test-VM anlegen, danach NAT und Bridge unterscheiden lernen und erst später mehrere VMs oder produktivere Szenarien aufbauen.
Empfohlene Reihenfolge
- Virtualisierungsunterstützung prüfen
- QEMU, KVM und libvirt installieren
- Gruppenrechte sauber setzen
- Standardnetzwerk testen
- Erste VM mit virt-install oder virt-manager anlegen
- virsh zur Verwaltung lernen
- Danach Bridge-Netzwerke und professionellere Setups ergänzen
Wichtige Befehle im Überblick
Wenn Sie Ubuntu als Host für virtuelle Maschinen mit KVM und QEMU nutzen möchten, sollten Sie diese Befehle sicher kennen.
Hardware-Virtualisierung prüfen
egrep -c '(vmx|svm)' /proc/cpuinfo
Pakete installieren
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst -y
Optional virt-manager installieren
sudo apt install virt-manager -y
libvirt-Status prüfen
sudo systemctl status libvirtd
Netzwerke anzeigen
virsh net-list --all
VMs anzeigen
virsh list --all
VM erstellen
virt-install --name ubuntu-test01 --memory 2048 --vcpus 2 --disk size=20 --cdrom /var/lib/libvirt/images/ubuntu.iso --osinfo ubuntu24.04 --network network=default --graphics vnc
VM starten
virsh start ubuntu-test01
VM herunterfahren
virsh shutdown ubuntu-test01
VM-Details prüfen
virsh dominfo ubuntu-test01
Wer diese Grundlagen sauber versteht und Schritt für Schritt praktisch umsetzt, bekommt mit Ubuntu, KVM und QEMU eine sehr starke Virtualisierungsplattform. Genau das macht diese Kombination so wertvoll: Sie ist leistungsfähig, offiziell dokumentiert, flexibel für einfache und professionelle Umgebungen und gleichzeitig gut geeignet, um echte Linux-Virtualisierung von Grund auf zu lernen. :contentReference[oaicite:19]{index=19}
::contentReference[oaicite:20]{index=20}
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

