Wer KVM unter Ubuntu professionell einrichten und optimieren möchte, bekommt mit Ubuntu eine sehr starke Grundlage für moderne Virtualisierung. Gerade in Laboren, Testumgebungen, auf Servern oder in Schulungsplattformen ist es oft sinnvoll, mehrere virtuelle Maschinen auf einem einzigen Host zu betreiben. Genau dafür sind KVM und die dazugehörigen Werkzeuge unter Ubuntu sehr gut geeignet. Die offizielle Ubuntu-Server-Dokumentation beschreibt QEMU/KVM zusammen mit libvirt als den Standardweg, um virtuelle Maschinen mit Hardware-Virtualisierung auf Ubuntu Server zu betreiben. Für Anfänger wirken Begriffe wie Hypervisor, libvirt, virsh, virt-install oder Bridge-Netzwerk oft zuerst technisch und schwer. In der Praxis wird das Thema aber deutlich einfacher, wenn man die Bausteine sauber trennt und Schritt für Schritt arbeitet. In diesem Tutorial lernen Sie, wie KVM unter Ubuntu installiert wird, wie Sie virtuelle Maschinen erstellen, welche Netzwerkkonzepte wichtig sind und wie Sie Ihren Virtualisierungshost sauber optimieren. :contentReference[oaicite:0]{index=0}
Was ist KVM unter Ubuntu?
KVM steht für Kernel-based Virtual Machine. Dabei handelt es sich um eine Virtualisierungstechnologie, die direkt im Linux-Kernel arbeitet. KVM nutzt die Hardware-Virtualisierung moderner Prozessoren, damit virtuelle Maschinen deutlich effizienter laufen können. QEMU ergänzt KVM, indem es die eigentliche virtuelle Hardware und Maschinenumgebung bereitstellt. Ubuntu dokumentiert QEMU/KVM genau in dieser Kombination und nennt libvirt als typische Verwaltungsschicht für die Steuerung der virtuellen Maschinen. Das bedeutet in der Praxis: KVM macht die Virtualisierung schnell, QEMU stellt die VM bereit und libvirt hilft bei der Verwaltung. :contentReference[oaicite:1]{index=1}
Einfach erklärt
- KVM nutzt die Virtualisierungsfunktionen der CPU.
- QEMU erstellt die virtuelle Maschine.
- libvirt verwaltet die virtuellen Maschinen.
- virsh ist das CLI-Werkzeug zur Steuerung.
- virt-manager ist die grafische Oberfläche.
Warum Ubuntu als KVM-Host gut geeignet ist
Ubuntu ist als Host-System für KVM besonders interessant, weil Canonical dafür eine eigene aktuelle Server-Dokumentation bereitstellt und Virtualisierung ausdrücklich als wichtigen Einsatzbereich beschreibt. In der Virtualisierungsübersicht von Ubuntu Server werden QEMU, libvirt, virt-manager und weitere Werkzeuge direkt als empfohlene VM-Werkzeuge genannt. Das ist ein guter Hinweis darauf, dass Ubuntu für diesen Einsatzfall nicht nur grundsätzlich geeignet ist, sondern aktiv gepflegte Dokumentation und Werkzeuge dafür anbietet. Für Lernende ist das besonders hilfreich, weil die Paketnamen, Dienstnamen und Verwaltungswege klar dokumentiert sind. :contentReference[oaicite:2]{index=2}
Typische Einsatzbereiche
- Test- und Laborumgebungen
- Entwicklungsmaschinen
- Mehrere Server auf einem einzigen Host
- Virtuelle Linux- und Windows-Systeme
- Schulungs- und Demo-Plattformen
Die wichtigsten Bausteine im KVM-Umfeld
Wer KVM unter Ubuntu professionell nutzen will, sollte die einzelnen Werkzeuge kennen. Die aktuelle Ubuntu-Dokumentation zu libvirt beschreibt libvirt als Toolkit und API zur Verwaltung von Virtualisierung. Ubuntu nennt dabei auch Werkzeuge wie virsh, virt-install und virt-manager. Für Anfänger ist das wichtig, weil man so versteht, dass KVM nicht nur aus einem einzigen Befehl besteht, sondern aus mehreren Werkzeugen für unterschiedliche Aufgaben. virsh ist stark für das Terminal, virt-install für die Erstellung neuer VMs und virt-manager für die grafische Verwaltung. :contentReference[oaicite:3]{index=3}
Die Werkzeuge kurz erklärt
- qemu-kvm für die eigentliche Virtualisierung
- libvirtd als Verwaltungsdienst
- virsh für Verwaltung per Terminal
- virt-install für neue VMs per CLI
- virt-manager für grafische Bedienung
Vor der Installation: CPU und Virtualisierung prüfen
Bevor Sie KVM einrichten, sollten Sie zuerst prüfen, ob Ihr Prozessor Hardware-Virtualisierung unterstützt. Die Ubuntu Community Help Wiki nennt dafür ausdrücklich die CPU-Flags vmx für Intel und svm für AMD. Wenn diese Erweiterungen fehlen oder im BIOS beziehungsweise UEFI deaktiviert sind, kann KVM nicht richtig genutzt werden. Für einen sauberen Start gehört diese Prüfung deshalb immer an den Anfang. :contentReference[oaicite:4]{index=4}
CPU-Flags prüfen
egrep -c '(vmx|svm)' /proc/cpuinfo
Wenn das Ergebnis größer als 0 ist, erkennt Ubuntu passende Virtualisierungsfunktionen. Zusätzlich kann eine genauere CPU-Übersicht nützlich sein.
Weitere CPU-Prüfung
lscpu | grep Virtualization
Ubuntu vorbereiten und aktualisieren
Ein Host-System für virtuelle Maschinen sollte sauber und aktuell sein. Gerade bei einem Virtualisierungshost ist es wichtig, dass Kernel, libvirt und QEMU mit aktuellen Paketen arbeiten. Deshalb sollten Sie vor der eigentlichen Einrichtung zuerst die Paketlisten aktualisieren und alle normalen Updates einspielen.
Paketlisten aktualisieren
sudo apt update
Pakete aktualisieren
sudo apt upgrade -y
Das ist zwar einfach, aber im professionellen Betrieb ein wichtiger Grundschritt.
KVM unter Ubuntu installieren
Die offizielle Ubuntu-Server-Dokumentation nennt für libvirt-gestützte QEMU/KVM-Setups die Pakete qemu-kvm und libvirt-daemon-system als notwendige Grundlage. Für den praktischen Alltag sind außerdem libvirt-clients, bridge-utils und virtinst sehr hilfreich. Genau diese Kombination ist für viele Server- und Laborsysteme ein guter Standard. :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 Verwaltung nutzen möchten, können Sie zusätzlich virt-manager installieren. Ubuntu dokumentiert virt-manager ausdrücklich als GUI-Werkzeug für lokale und entfernte VMs. :contentReference[oaicite:6]{index=6}
Optional: grafische Verwaltung installieren
sudo apt install virt-manager -y
libvirt-Dienst prüfen und aktivieren
Nach der Installation sollte der libvirt-Dienst laufen, denn er ist die zentrale Verwaltungsschicht für QEMU/KVM unter Ubuntu. In der Ubuntu-Dokumentation wird libvirt genau in dieser Rolle beschrieben. Ein sauber laufender libvirt-Dienst ist wichtig, damit virsh, virt-install und virt-manager korrekt arbeiten können. :contentReference[oaicite:7]{index=7}
Status prüfen
sudo systemctl status libvirtd
Dienst direkt aktivieren
sudo systemctl enable --now libvirtd
Wenn der Dienst aktiv ist, ist der Host bereits deutlich besser vorbereitet.
Benutzerrechte für KVM und libvirt setzen
Die Ubuntu Community Help Wiki beschreibt, dass Benutzer, die virtuelle Maschinen verwalten sollen, typischerweise in die Gruppen kvm und libvirtd aufgenommen werden. Mitglieder der sudo-Gruppe erhalten auf modernen Ubuntu-Systemen teils schon passende Zugriffe, aber für eine saubere und bewusste Verwaltung ist der Gruppenansatz weiterhin wichtig. Genau das erleichtert später die Arbeit mit virsh oder virt-manager ohne unnötige Rechteprobleme. :contentReference[oaicite:8]{index=8}
Benutzer zu den Gruppen hinzufügen
sudo adduser $(id -un) kvm
sudo adduser $(id -un) libvirtd
Danach sollten Sie sich neu anmelden, damit die Gruppenmitgliedschaften aktiv werden.
Prüfen, ob libvirt korrekt arbeitet
Nach der Installation sollten Sie testen, ob libvirt wirklich erreichbar ist. Das Standardwerkzeug dafür ist virsh. Die Ubuntu-Hilfe und die libvirt-Dokumentation nennen virsh als wichtiges CLI-Werkzeug für die Verwaltung lokaler KVM-Hypervisoren. Typischerweise wird lokal die URI qemu:///system verwendet. :contentReference[oaicite:9]{index=9}
Virtuelle Maschinen anzeigen
virsh list --all
Verbindungs-URI prüfen
virsh uri
Wenn hier eine sinnvolle Ausgabe erscheint, arbeitet libvirt korrekt mit dem Hypervisor zusammen.
Das Standardnetzwerk von libvirt verstehen
Ein sehr wichtiger Teil der KVM-Einrichtung ist das Netzwerk. Ubuntu beschreibt das Standardnetzwerk von libvirt als NAT-basiertes Modell. Das bedeutet, dass Gäste typischerweise in einem internen virtuellen Netz hängen und über den Host per NAT nach außen kommunizieren. Für Lernzwecke und viele Testumgebungen ist das sehr praktisch, weil die VMs ohne große Zusatzkonfiguration Netzwerkkonnektivität bekommen. :contentReference[oaicite:10]{index=10}
Vorhandene Netzwerke anzeigen
virsh net-list --all
Standardnetzwerk starten
sudo virsh net-start default
Standardnetzwerk automatisch aktivieren
sudo virsh net-autostart default
Damit läuft das Standard-NAT-Netz auch nach Neustarts wieder automatisch.
NAT oder Bridge: das richtige Netzwerkmodell wählen
Für viele Tests genügt das Standard-NAT-Netzwerk. Wenn eine VM aber im lokalen Netzwerk wie ein normaler eigener Server erscheinen soll, reicht NAT oft nicht aus. Die Ubuntu-Dokumentation zu libvirt erklärt ausdrücklich, dass für direkte Sichtbarkeit im physischen Netzwerk eine Bridge-Konfiguration nötig ist. Das ist für Serverdienste, Labor-Cluster oder bestimmte Netzwerk-Tests besonders wichtig. :contentReference[oaicite:11]{index=11}
Einfach erklärt
- NAT ist gut für Testsysteme und schnellen Einstieg.
- Bridge ist besser, wenn VMs direkt im LAN sichtbar sein sollen.
- NAT trennt Gäste stärker vom physischen Netz.
- Bridge macht VMs netzwerktechnisch „echter“.
Eine erste VM mit virt-install erstellen
Für die CLI-basierte Erstellung neuer VMs ist virt-install sehr nützlich. Die Ubuntu-Manpage beschreibt virt-install als Werkzeug zum Anlegen neuer virtueller Maschinen und nennt lokale ISO-Dateien, Remote-Installationsbäume und den Import vorhandener Images als typische Wege. Für einen klaren Einstieg ist eine lokale ISO-Datei oft am einfachsten. :contentReference[oaicite:12]{index=12}
Beispiel: Ubuntu-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
Hier wird eine VM mit 2 GB RAM, 2 virtuellen CPUs und 20 GB Speicher erzeugt. Als Installationsmedium dient eine lokale Ubuntu-ISO-Datei.
Eine vorhandene qcow2-Datei importieren
In vielen Labors oder Cloud-nahen Umgebungen arbeitet man nicht nur mit ISO-Dateien, sondern mit vorhandenen VM-Images. Das QEMU-Format qcow2 ist dafür sehr verbreitet. Ubuntu dokumentiert den Start vorbereiteter Images mit libvirt ausdrücklich, und die virt-install-Manpage erklärt den Parameter –import für genau diesen Zweck. :contentReference[oaicite:13]{index=13}
Beispiel: Vorhandenes qcow2-Image importieren
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
Damit definieren Sie eine VM direkt aus einem vorhandenen Disk-Image.
Virtuelle Maschinen mit virsh verwalten
Für den professionellen Alltag ist virsh eines der wichtigsten Werkzeuge. Die Ubuntu-Hilfe beschreibt virsh ausdrücklich für das Starten, Stoppen, Listen und Verwalten von VMs auf dem lokalen Hypervisor. Gerade wenn Sie ohne grafische Oberfläche arbeiten, ist virsh fast unverzichtbar. :contentReference[oaicite:14]{index=14}
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
Autostart aktivieren
virsh autostart ubuntu-test01
So wird aus einer einfachen Installation ein sauber verwalteter Virtualisierungshost.
Virt-manager als grafische Hilfe nutzen
Wenn Sie lieber mit einer grafischen Oberfläche arbeiten, ist virt-manager sehr hilfreich. Ubuntu beschreibt virt-manager als GUI zur Verwaltung lokaler und entfernter VMs über libvirt. Gerade für Anfänger ist das nützlich, weil Netzwerke, Speicher und Installationsdialoge dort visuell leichter nachvollziehbar sind. :contentReference[oaicite:15]{index=15}
Virt-manager starten
virt-manager
Damit können Sie lokale libvirt-Verbindungen öffnen oder später auch entfernte Hosts verwalten.
Bridge-Netzwerk mit Netplan einrichten
Wenn eine VM direkt im LAN sichtbar sein soll, ist eine Bridge-Konfiguration sinnvoll. Ubuntu verweist in seiner Virtualisierungsdokumentation auf Netplan für solche Netzwerkkonzepte. Ein einfaches Beispiel zeigt, wie ein physisches Interface in eine Bridge aufgenommen wird. Danach kann libvirt VMs an diese Bridge anbinden. :contentReference[oaicite:16]{index=16}
Einfaches Netplan-Beispiel für eine Bridge
network:
version: 2
renderer: networkd
ethernets:
enp0s3: {}
bridges:
br0:
interfaces:
- enp0s3
dhcp4: true
Konfiguration prüfen
sudo netplan generate
Konfiguration anwenden
sudo netplan apply
Danach können VMs über eine libvirt-Konfiguration oder über virt-manager an br0 gehängt werden.
Speicher und Images bewusst planen
Ein professioneller KVM-Host braucht nicht nur CPU und RAM, sondern auch gut geplanten Speicher. VM-Images liegen unter Ubuntu typischerweise im Bereich /var/lib/libvirt/images/. Dort wachsen qcow2- und andere Disk-Dateien oft schnell an. Gerade auf SSDs oder NVMe-Systemen kann die Leistung sehr gut sein, aber auch der Platzbedarf muss beachtet werden. Die Ubuntu-Server-Dokumentation verweist auf libvirt- und QEMU-Verwaltung genau in diesem Zusammenhang. :contentReference[oaicite:17]{index=17}
Image-Verzeichnis prüfen
ls -lh /var/lib/libvirt/images/
Wichtige Best Practices für Storage
- Genügend freien Speicher einplanen
- VM-Images klar benennen
- Schnellen Storage für aktive VMs bevorzugen
- Backups und Snapshots mitdenken
Ressourcen sinnvoll optimieren
Wer KVM unter Ubuntu optimieren möchte, sollte Ressourcen bewusst planen. Mehr vCPUs oder mehr RAM sind nicht automatisch besser. Entscheidend ist, dass der Host nicht überlastet wird und dass wichtige VMs die benötigten Ressourcen zuverlässig bekommen. Die Ubuntu- und virt-install-Dokumentation zeigen, dass CPU- und RAM-Werte direkt bei der Definition einer VM angegeben werden können. Genau dort beginnt die Optimierung bereits. :contentReference[oaicite:18]{index=18}
Wichtige Optimierungsregeln
- Nur so viel RAM vergeben wie nötig
- Die Host-Reserven immer mitdenken
- CPU-Kerne nicht beliebig überbuchen
- Wichtige Dienste auf schnelle Datenträger legen
Für viele kleine Labore ist eine konservative Planung deutlich besser als zu aggressive Überbelegung.
VM-Details und Status prüfen
Professionelle Verwaltung bedeutet auch, VMs regelmäßig zu kontrollieren. virsh und libvirt stellen dafür mehrere wichtige Befehle bereit.
VM-Informationen anzeigen
virsh dominfo ubuntu-test01
XML-Konfiguration anzeigen
virsh dumpxml ubuntu-test01
Netzwerke prüfen
virsh net-list --all
Storage-Pools prüfen
virsh pool-list --all
Diese Befehle helfen sehr bei Verwaltung und Fehlersuche. Die Ubuntu-Hilfe zu virsh verweist ausdrücklich darauf, dass VMs intern als libvirt-XML-Definitionen verwaltet werden. :contentReference[oaicite:19]{index=19}
Typische Fehler bei KVM unter Ubuntu vermeiden
Viele Probleme entstehen nicht durch KVM selbst, sondern durch kleine Vorbereitungsfehler. Gerade Anfänger sollten diese klassischen Fehler kennen. Die Ubuntu Community Help Wiki beschreibt mehrere davon indirekt in ihren Installations- und Verwaltungsseiten, vor allem in Bezug auf CPU-Support, Gruppenrechte und Netzwerkmodelle. :contentReference[oaicite:20]{index=20}
Häufige Fehler
- Hardware-Virtualisierung ist deaktiviert.
- libvirt läuft nicht korrekt.
- Benutzerrechte für kvm oder libvirtd fehlen.
- ISO-Datei oder Image-Pfad ist falsch.
- Das Netzwerkmodell passt nicht zum Einsatzzweck.
- Zu viele Ressourcen werden gleichzeitig vergeben.
Was besser funktioniert
- Mit einer kleinen Test-VM starten
- Erst NAT nutzen, dann Bridge ergänzen
- virsh und virt-install bewusst lernen
- Host-Ressourcen und Speicher im Blick behalten
Eine sinnvolle Lernstrategie für Anfänger
Auch wenn das Thema professionell klingt, sollte der Lernweg ruhig und klar bleiben. Erst CPU-Support prüfen, dann Pakete installieren, dann libvirt testen und anschließend genau eine einfache VM anlegen. Wenn das funktioniert, können Netzwerke, Storage und Optimierung Schritt für Schritt erweitert werden. Genau diese Lernreihenfolge ist meist erfolgreicher als ein sofortiger Einstieg mit komplexen Bridge-Netzen und vielen parallelen VMs.
Empfohlene Reihenfolge
- CPU-Virtualisierung prüfen
- KVM, QEMU und libvirt installieren
- Gruppenrechte setzen
- Standardnetzwerk testen
- Erste VM mit virt-install anlegen
- virsh zur Verwaltung nutzen
- Danach Bridge und Optimierung ergänzen
Wichtige Befehle im Überblick
Wenn Sie KVM unter Ubuntu professionell einrichten und optimieren möchten, sollten Sie diese Befehle sicher kennen.
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-Infos prüfen
virsh dominfo ubuntu-test01
Wer diese Grundlagen sauber versteht und praktisch anwendet, baut mit Ubuntu, KVM, QEMU und libvirt einen sehr leistungsfähigen Virtualisierungshost auf. Genau darin liegt die Stärke dieses Setups: Es ist professionell, gut dokumentiert, flexibel für Tests und produktive Umgebungen und gleichzeitig ein sehr guter Weg, um Linux-Virtualisierung wirklich zu verstehen. :contentReference[oaicite:21]{index=21}
::contentReference[oaicite:22]{index=22}
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.

