Virtualisierung mit KVM

Aus LinuxUser 04/2012

Virtualisierung mit KVM

© Roman Sakhno, 123rf.com

Maschinenbauer

Mit seinen kleinen, aber feinen Kommandozeilenwerkzeugen ermöglicht KVM, mal eben schnell eine virtuelle Maschine zu starten, ohne sich erst umständlich durch bunte Menüs klicken zu müssen.

Virtuelle Maschinen sind äußerst praktisch. In diesen nachgebildeten Computern können Sie schnell eine neue Distribution ausprobieren, Windows starten oder ältere Betriebssysteme wiederbeleben. Eine beliebte quelloffene Virtualisierungssoftware hört auf den etwas sperrigen Namen “Kernel-based Virtual Machine” oder kurz KVM [1]. Obwohl maßgeblich von Red Hat vorangetrieben, kommt sie mittlerweile in fast allen großen Distributionen als bevorzugte Virtualisierungslösung zum Einsatz.

Arbeitsteilung

KVM selbst besteht aus mehreren Einzelteilen (Abbildung 1). Die Basis bildet dabei ein Kernel-Modul: Es sorgt dafür, dass die virtuellen Maschinen effizient auf die echte Hardware zugreifen können und sich dabei nicht gegenseitig in die Quere kommen. Einen solchen Verwalter nennt man auch Hypervisor [2] oder Virtual Machine Manager (VMM).Seit Version 2.6.20 gehört das KVM-Modul standardmäßig zum Linux-Kernel und ist somit in jeder aktuellen Distribution zu finden.

Abbildung 1: Das KVM-Modul stellt die notwendige Infrastruktur für die virtuellen Maschinen bereit.

Abbildung 1: Das KVM-Modul stellt die notwendige Infrastruktur für die virtuellen Maschinen bereit.

Die Dienstleistungen des Moduls kann eine Virtualisierungssoftware in Anspruch nehmen. Bei den meisten Distributionen kommt dabei Qemu [3] zum Einsatz. Dieses Programm ist wesentlich älter als KVM und bildete ursprünglich einen kompletten PC nach, einschließlich des Prozessors. Hierdurch kann Qemu zwar auch x86-Programme auf exotischen Prozessoren wie dem PowerPC ausführen, die Verarbeitungsgeschwindigkeit lässt dabei jedoch zu wünschen übrig. Die KVM-Macher haben deshalb Qemu so angepasst, dass es das KVM-Modul und somit die wichtigen Hardware-Komponenten des echten PCs direkt nutzt. Das klappt so gut, dass die Qemu-Entwickler mittlerweile die Änderungen übernommen haben.

Diese verschlungenen Wege führen allerdings zu einer etwas verwirrenden Situation: Einige Distributionen offerieren neben einem Paket mit dem offiziellen Qemu auch ein weiteres mit der vom KVM-Team bereitgestellten Variante. Die Qual der Wahl haben beispielsweise alle OpenSuse-Nutzer. Im Zweifelsfall sollten Sie sich im Paketmanager Ihrer Distribution für das kvm-Paket entscheiden, unter Ubuntu und Linux Mint versteckt sich das Gesuchte hinter dem Dummy transitional package from kvm to qemu-kvm. Damit wandert dann automatisch das passende, aktuelle Qemu auf Ihre Festplatte.

Gastgeber

Die Installation selbst ist kinderleicht: Es genügt, das besagte KVM-Paket über den Paketmanager einzuspielen. Eine virtuelle Maschine lässt sich allerdings nur dann reibungslos starten, wenn der reale Computer ein paar Voraussetzungen erfüllt.

Zunächst muss der Prozessor ein Intel- beziehungsweise AMD-Modell sein, das die Virtualisierung mit einer speziellen Befehlserweiterung unterstützt. Bei Intel heißt diese Technik Intel VT, beim Konkurrenten AMD-V. Die meisten Desktop- und Notebook-Prozessoren der letzten fünf Jahre unterstützen die entsprechende Technologie. Eine Ausnahme bilden besonders leistungsschwache Prozessoren, wie etwa einige Modelle aus der Atom-Reihe. Für seine eigenen Prozessoren stellt Intel eine entsprechende Liste [4] bereit.

Ob der Prozessor Ihres PCs Virtualisierung unterstützt, prüfen Sie mit dem Befehl lsmod | grep kvm prüfen. Er sollte zwei Zeilen zurückliefern: Eine beginnt mit kvm, die andere je nach Prozessor mit kvm_intel oder kvm_amd. Andernfalls können Sie probieren, die Module per Hand zu starten, bei einem Intel-Prozessor etwa mittels der Kommandos:

$ sudo modprobe kvm
$ sudo modprobe kvm_intel

Unter Umständen müssen Sie die Funktionen auch erst noch im BIOS des Computers aktivieren. Fehlt der CPU die Hardwarevirtualisierung, lässt sich zwar trotzdem eine virtuelle Maschine starten, das darin laufende Gastsystem kriecht dann aber im Schneckentempo vor sich hin.

Als Nächstes benötigen Sie möglichst viel Hauptspeicher – denn der muss jetzt nicht nur das gastgebende Betriebssystem aufnehmen, sondern auch noch die virtuellen Maschinen. Das absolutes Minimum stellen 2 GByte dar. Je mehr RAM im Rechner steckt, desto mehr virtuelle Maschinen mit speicherhungrigen Betriebssystemen können Sie starten. Achten Sie dabei auch auf die Anforderungen der jeweiligen Betriebssysteme: Wollen Sie später 64-Bit-Programme in den virtuellen Maschinen starten, muss das gastgebende Linux ebenfalls ein 64-Bit-System ein. Auf einem solchen können Sie auch 32-Bit-Betriebssysteme ausführen, aber nicht umgekehrt.

Abschließend testen Sie mittels des Aufrufs qemu -version noch, ob KVMs Gehilfe Qemu korrekt installiert ist. Sofern anstelle der Versionsnummer eine Fehlermeldung erscheint, probieren Sie stattdessen qemu-kvm -version aus.

Einige Distributionen, wie etwa OpenSuse, nennen das vom KVM-Team modifizierte Qemu qemu-kvm, während die separat nachzuinstallierende, offizielle Variante qemu heißt. In diesem Fall müssen Sie in allen folgenden Befehlen immer den Aufruf qemu durch qemu-kvm ersetzen.

Kickstart

Um schnell eine virtuelle Maschine mit einem Live-System zu starten, geben Sie folgenden Befehl ein:

$ qemu -cdrom ubuntu.iso

Dabei steht ubuntu.iso für das ISO-Image mit der Live-CD oder -DVD des zu startenden Gastsystems. Falls Sie schon eine CD oder DVD gebrannt haben, ersetzen Sie einfach den Dateinamen gegen die Gerätedatei für das entsprechende Laufwerk, also etwa:

$ qemu -cdrom /dev/cdrom

Der Desktop des gestarteten Systems erscheint jetzt in einem eigenen Fenster. Einige Linux-Distributionen erkennen, dass sie in einer virtuellen Maschine laufen, und lassen sich dann wie eine normale Anwendung bedienen. Teilweise funktioniert das allerdings nur etwas hakelig: So gilt es beispielsweise bei Ubuntu 11.10 mitunter mehrfach zu klicken, bis ein Menü aufklappt oder das gewählte Programm startet.

In allen anderen Fällen müssen Sie einmal in das Fenster der virtuellen Maschine klicken. Qemu “fängt” dann den Mauszeiger. Wieder heraus bekommen Sie ihn, indem Sie [Strg]+[Alt] drücken. In den Vollbildmodus und zurück schaltet [Strg]+[Alt]+[F]. Das funktioniert allerdings nicht immer: Häufig zeigt die virtuelle Maschine nur einen schwarzen Bildschirm.

Qemu stellt standardmäßig eine virtuelle Grafikkarte des Typs Cirrus CLGD 5446 PCI bereit. Die können zwar die meisten Betriebssysteme von Haus aus nutzen, 3D-Anwendungen funktionieren damit aber nicht. Um die Einrichtung der Netzwerkkarte müssen Sie sich normalerweise ebenfalls keine Gedanken machen: Qemu spendiert der virtuellen Maschine standardmäßig eine Netzwerkkarte mit Realtek-Chipsatz, für die alle halbwegs aktuellen Betriebssysteme einen passenden Treiber mitbringen.

Der eingebaute virtuelle Router weist mit seinem DHCP-Server dem Gastsystem automatisch eine IP-Adresse zu. Mit dieser kommt das virtuelle System nicht nur ins Netzwerk beziehungsweise Internet, unter der IP-Adresse 10.0.2.2 erreicht es auch das gastgebende System (Abbildung 2). Läuft dort ein SSH-Server, lassen sich beispielsweise via scp Dateien austauschen.

Abbildung 2: Dank des in Qemu eingebauten Routers samt Firewall kommt hier Ubuntu ohne weitere Einstellungen direkt ins Internet.

Abbildung 2: Dank des in Qemu eingebauten Routers samt Firewall kommt hier Ubuntu ohne weitere Einstellungen direkt ins Internet.

Sie sollten unbedingt der Versuchung widerstehen, das Fenster der virtuellen Maschine über das X-Symbol in der Titelleiste zu schließen: Für das Gastsystem wirkt das dann so, als würden Sie bei einem echten PC einfach das Stromkabel aus der Steckdose ziehen. Fahren Sie das Gastsystem daher möglichst immer wie üblich herunter, das Fenster schließt sich dann automatisch.

Die Kuh macht muh

Wollen Sie nicht nur Live-CDs ausprobieren, sondern die Betriebssysteme auch installierten, muss eine ausreichend große Festplatte her. Qemu und KVM reichen wahlweise eine echte Festplatte in die virtuelle Maschine durch oder simulieren eine solche mit einer dicken Datei. Ein solches Festplattenimage erzeugt das mitgelieferte Hilfsprogramm Qemu-img:

$ qemu-img create -f qcow2 my_img.img 30G

Dieser Befehl erstellt (create) ein neues Festplattenimage im QCOW2-Format unter dem Dateinamen my_img.img, wobei die simulierte Festplatte maximal 30 GByte Daten fasst.

Ein Festplattenimage im QCOW2-Format ist praktischerweise immer nur genau so groß, wie die darin gelagerten Dateien tatsächlich beanspruchen, es wächst gewissermaßen mit seinen Inhalten. Bei voller Beladung schwillt das Festplattenimage aber auf volle 30 GByte an. Das ist schnell passiert, wenn Sie in der virtuellen Maschine ein Video herunterladen oder wild Softwarepakete nachinstallieren. Die reale Festplatte sollte folglich immer genügend freien Speicherplatz aufweisen.

Das erstellte Festplattenimage übergeben Sie anschließend einfach Qemu bei dessen Start:

$ qemu -cdrom ubuntu.iso -m 1024M my_img.img

Der Parameter -m 1024M spendiert dabei der virtuellen Maschine noch 1 GByte Hauptspeicher. Diesen zwacken Qemu und KVM allerdings vom realen Hauptspeicher ab. Achten Sie also darauf, dass dem gastgebenden System noch genug Luft zum Atmen bleibt. Ohne den Parameter -m erhält eine virtuelle Maschine nur magere 128 MByte Hauptspeicher. Damit kommt Windows XP (Abbildung 3) einigermaßen zurecht. Windows 7 (Abbildung 4) sollten Sie dagegen wie im Beispiel mindestens 1 GByte gönnen, Ubuntu begnügt sich hingegen schon mit 512 MByte. Übrigens können Sie für -m 1024M auch kurz -m 1G schreiben.

Abbildung 3: Ein altes Windows XP läuft genau so unter Qemu/KVM …

Abbildung 3: Ein altes Windows XP läuft genau so unter Qemu/KVM …

Abbildung 4: … wie das aktuelle Windows 7.

Abbildung 4: … wie das aktuelle Windows 7.

Qemu hängt die Festplatte an die erste IDE-Schnittstelle (hda), S-ATA-Ports kennen die virtuellen Maschinen derzeit noch nicht. Die Installation von Windows 7 und Vista kann zudem recht lange dauern. Selbst wenn der echte PC recht flott ist, müssen Sie mindestens eine Stunde einplanen. Der eigentliche Betrieb läuft dann aber wieder zügiger ab.

Anstelle des QCOW2-Images können Sie auch vorbereitete Festplattenimages von VirtualBox (Endung .vdi), VirtualPC (Endung .vhd) oder Vmware (Endung .vmdk) verwenden. Möchten Sie lieber eine echte Festplatte nutzen, ersetzen Sie my_img.img aus dem vorigen Beispiel durch die entsprechende Gerätedatei:

$ qemu -cdrom ubuntu.iso -m 1024M /dev/sdb

Doch Vorsicht: Wenn dort bereits ein installiertes Betriebssystem lagert, startet es zwar in der virtuellen Maschine, findet darin aber eine komplett andere Hardware vor (siehe Tabelle “Qemu: Virtuelle Hardware”). Insbesondere Windows installiert dann nicht nur entsprechende Treiber nach, sondern möchte zudem auch noch einmal aktiviert werden.

Qemu: Virtuelle Hardware

Standard-Komponenten
BIOS SeaBIOS
Grafikkarte Cirrus Logic GD5446
Netzwerkkarte Realtek RTL8139 PCI
Host PCI Bridge i440FX
PCI to ISA Bridge PIIX3
Keyboard/Maus PS/2
IDE-Schnittstellen 2
Floppy-Laufwerk 1
Ser./par. Interface 1/1
Optionen (manuell hinzuzufügen)
Soundkarte verschiedene Modelle, darunter Soundblaster 16, AC97, HDA
USB-Support PCI-UHCI-USB-Controller, virtueller USB-Hub

Kuh-Handel

Das kleine Werkzeug Qemu-img erstellt nicht nur neue Festplattenimages, sondern kann auch verschiedene Formate ineinander konvertieren. Der folgende Befehl produziert beispielsweise aus dem VirtualBox-Image ubuntu.vdi eines im QCOW2-Format:

$ qemu-img convert -O qcow2 ubuntu.vdi ubuntuqcow2.img

Welche Formate qemu-img verdaut, verrät der Befehl qemu-img --help in der Liste am unteren Ende. Darunter finden sich auch die Dateiformate der bekannteren Virtualisierungslösungen, wie VirtualBox (vdi), Parallels, Vmware (vmdk), VirtualPC (vhd oder vpc), Bochs oder Images aus Mac OS X (dmg). Bei raw handelt es sich um ein unkomprimiertes Eins-zu-Eins-Abbild einer Festplatte, wie Sie es beispielsweise mit dd erstellen. Dagegen steht qed für Qemu Enhanced Disk Format, den designierten Nachfolger von QCOW2 [9]. Je nach Umfang des Images und der Leistungsfähigkeit des Rechners kann der Konvertierungsvorgang übrigens einige Zeit in Anspruch nehmen.

Sofern Sie das Image ins QCOW2-Format konvertieren, dürfen Sie es noch verschlüsseln lassen (Parameter -o encryption=on):

$ qemu-img convert -O qcow2 -o encryption=on ubuntu.vdi ubuntuqcow.img

Qemu-img verlangt jetzt die Eingabe eines Passworts. Die Verschlüsselung selbst erfolgt mit dem AES-Verfahren und einem 128-Bit-Schlüssel. Qemu müssen Sie später lediglich das (verschlüsselte) Image wie gewohnt übergeben. Daraufhin startet die virtuelle Maschine, hält aber umgehend mit einem schwarzen Fenster an. Dort wechseln Sie mit [Strg]+[Alt]+[**2**] in den Monitor, setzen dort mit dem Befehl c die Verarbeitung fort und tippen dann das Passwort zur Entschlüsselung der Platte ein.

Alternativ zur Verschlüsselung kann Qemu-img ein QCOW2-Image auch mittels Zlib komprimieren:

$ qemu-img convert -c -O qcow2 ubuntu.vdi ubuntuqcow.img

Auch das geschrumpfte Image übergeben Sie wie ein normales Abbild an Qemu. Komprimierung und Verschlüsselung sorgen zwar für kleinere Festplatten-Images, in die kein Fremder hineinlinsen kann, beide Funktionen kosten aber auch Rechenleistung.

Das QCOW2-Format bietet aber noch eine nette Eigenschaft: Sie können den Zustand eines Image einfrieren. Alle weiteren Änderungen speichert Qemu dann in einem zweiten, kleineren Image. Das ist besonders dann nützlich, wenn Sie häufig neue Software ausprobieren. Das Basissystem im ersten Image bleibt unangetastet, während alle Änderungen im zweiten landen. Um wieder ein frisches System vor sich zu haben, müssen Sie lediglich das zweite Image löschen. Um diese Funktion zu nutzen, erstellen Sie zunächst wie gewohnt ein Festplattenabbild:

$ qemu-img create -f qcow2 basis.img 30G

Dieses starten Sie unter Qemu und installieren das gewünschte Betriebssystem darauf. Anschließen beenden Sie Qemu und erstellen ein zweites, sogenanntes Overlay-Image, das sich alle zukünftigen Änderungen merkt:

$ qemu-img create -f qcow2 -o backing_file=basis.img overlay.img

Wenn Sie jetzt Qemu starten, verwenden Sie nur noch overlay.img. Das Image basis.img muss weiterhin im gleichen Verzeichnis liegen bleiben – schließlich dienen die dort gespeicherten Daten als Ausgangspunkt. Sobald Sie später die Änderungen verwerfen möchten, löschen Sie einfach overlay.img und nutzen wieder das basis.img. Übrigens können Sie beliebige weitere Overlay-Images auf basis.img aufbauen lassen. Möchten Sie den Stand in overlay.img auf das basis.img übertragen, verwenden Sie den schlichten Befehl:

$ qemu-img commit overlay.img

Alternativ können Sie den commit-Befehl im Qemu-Monitor verwenden.

Es kann sich übrigens auch lohnen, ein QCOW2-Image in ein QCOW2-Image zu konvertieren: Qemu-img erkennt unbelegte Sektoren und übernimmt diese nicht in das Zielimage – die entstehende Image-Datei ist am Ende somit kleiner als das Original.

Das Verfahren kann man auch noch weiter treiben und die Abbilddatei mittels -snapshot einbinden:

$ qemu -m 1024M -boot -snapshot basis.img

Qemu liest jetzt nur noch von der Festplatte. Sämtliche Änderungen speichert es in eine temporäre Datei im Verzeichnis /tmp. Diese löscht Qemu, sobald Sie die virtuelle Maschine beenden. Das Gastsystem ist damit, ähnlich wie bei einer Live-CD, wieder in seinem ursprünglichen Zustand.

Sollten einmal Zweifel an der Integrität einer Abbilddatei auftreten, hilf folgender Befehl weiter:

qemu-img check meinimage.img

Das Kommando überprüft das angegebene Image auf Fehler. Das funktioniert allerdings nur für die Formate QCOW2, QED und VDI.

Mach mal Lala

Töne gibt die virtuelle Maschine erst dann aus, wenn Sie Ihr eine Soundkarte spendieren. Qemu hat dabei mehrere virtuelle Modelle im Angebot. Das in aktuellen PCs verbaute Intel-HD-Audio fügen Sie folgendermaßen hinzu:

$ qemu -cdrom ubuntu.iso -m 1024M -soundhw hda my_img.img

Da Windows XP dafür allerdings keine Treiber mitbringt, setzen Sie für einen Gast mit diesem Betriebssystem eine AC97-Audiokarte ein:

$ qemu -cdrom ubuntu.iso -m 1024M -soundhw ac97 my_img.img

Ein Klassiker – und somit insbesondere für die Verwendung mit Uralt-Betriebssystemen zu empfehlen – ist die Soundblaster 16:

$ qemu -cdrom ubuntu.iso -m 1024M -soundhw sb16 my_img.img

Alle übrigen unterstützten Soundkarten-Modelle listet das folgende Kommando auf:

$ qemu-kvm -soundhw ?

Die Kürzel am Anfang einer jeden Ausgabezeile des Befehls verwenden Sie für den Wert hinter -soundhw.

Laufender Eingriff

Wenn Sie irgendwann das Installationsmedium wechseln müssen, drücken Sie [Strg]+[Alt]+[**2**]. Damit landen Sie im sogenannten Monitor, einer speziellen Kommandozeile, mit der Sie im laufenden Betrieb die Hardware der virtuellen Maschine austauschen, umbauen und manipulieren. Um eine CD oder DVD zu tauschen, fragen Sie hier zunächst den aktuellen Zustand der Geräte ab:

(qemu) info block

Das spuckt ein paar kryptische Zeilen wie in Abbildung 5 aus. Ganz am Anfang steht der Qemu-Gerätename.

Abbildung 5: Der Monitor listet auf den Befehl <code srcset=

info block hin alle Block-Geräte in der virtuellen Maschine auf. Darunter befindet sich standardmäßig sogar noch ein Diskettenlaufwerk.” width=”300″ height=”116″ /> Abbildung 5: Der Monitor listet auf den Befehl info block hin alle Block-Geräte in der virtuellen Maschine auf. Darunter befindet sich standardmäßig sogar noch ein Diskettenlaufwerk.

In Abbildung 5 hört das CD-Laufwerk auf den Namen ide1-cd0 – einfach zu entdecken anhand der “eingelegten” ISO-Datei sowie dem removable=1. Die CD oder DVD darin wirft folgender Befehl aus:

(qemu) eject -f ide1-cd0

Dabei erzwingt der (optionale) Parameter -f das Auswerfen, für den Fall, dass beispielsweise das Betriebssystem das Medium noch in seinen Klauen hält. Sobald das virtuelle Laufwerk leer ist, binden Sie das Ersatzmedium ein, das im folgenden Beispiel im Verzeichnis /home/tim liegt und den Dateinamen cdrom2.iso trägt:

(qemu) change ide1-cd0 /home/tim/cdrom2.iso

Hat sich eine virtuelle Maschine aufgehängt, starten Sie sie im Monitor via system_reset neu. Als nützlich erweist sich auch der Monitor-Befehl sendkey, mit dem Sie im virtuellen System eine ganz bestimmte Tastenkombination auslösen. So würde:

(qemu) sendkey alt-f1

in KDE beispielsweise das Startmenü öffnen. Den Monitor verlassen Sie über [Strg]+[Alt]+[**1**] wieder.

Erster!

Die virtuelle Maschine versucht grundsätzlich, von der ersten Festplatte zu starten. Soll sie hingegen vom CD-Laufwerk booten, müssen Sie das beim Start über den Parameter -boot once= angeben:

$ qemu -cdrom ubuntu.iso -m 1024M -boot once=d my_img.img

Das d steht dabei für das CD-Laufwerk, c wäre hingegen die erste Festplatte, n das Netzwerk. Durch die Kombination der Buchstaben und zusammen mit dem Parameter -boot order geben Sie dauerhaft eine andere Bootreihenfolge vor:

$ qemu -cdrom ubuntu.iso -m 1024M -boot once=dcn my_img.img

Damit sucht die virtuelle Maschine immer erst auf der CD, dann auf der Festplatte und schließlich im Netzwerk (via Etherboot und PXE) nach einem bootbaren System.

Anstecker

Möchten Sie in der virtuellen Maschine ein am echten PC angeschlossenes USB-Gerät nutzen, müssen Sie es in mehreren Schritten an das Gastsystem durchreichen. Dazu rufen Sie zunächst auf dem Wirtssystem den Befehl lsusb auf. Sie erhalten dann eine Liste mit allen angeschlossenen USB-Geräten, wie in Abbildung 6. Suchen Sie dort die passende Zeile und merken Sie sich die Bus– und die Device-Nummer am Anfang. In Abbildung 6 besitzt beispielsweise der USB-Stick aus der untersten Zeile die Bus-Nummer 1 und die Gerätenummer 3. Die geben Sie jetzt beim Start der virtuellen Maschine an:

$ qemu -cdrom ubuntu.iso -m 1024M -boot once=dcn my_img.img -usb -device usb-host,hostbus=1,hostaddr=3
Abbildung 6: Um ein USB-Gerät durchzureichen, ermitteln Sie zunächst dessen Bus- und Device-Nummer.

Abbildung 6: Um ein USB-Gerät durchzureichen, ermitteln Sie zunächst dessen Bus- und Device-Nummer.

Der Parameter -usb aktiviert die USB-Unterstützung, hinter -device nennen Sie den Namen des Geräts. In diesem Fall handelt es sich um ein USB-Gerät am echten PC (usb-host), das dort die Bus-Adresse (hostbus) 1 und die Gerätenummer (hostaddr) 3 aufweist.

Sie können das USB-Gerät auch in einer laufenden virtuellen Maschine “anstöpseln”. Dazu wechseln Sie in den Monitor und verwenden den Befehl usb_add (Abbildung 7). Er hat allgemein die Form usb_add host:Bus.Device, sähe also im Beispiel des USB-Sticks folgendermaßen aus:

(qemu) usb_add host:1.3
Abbildung 7: Anschließend fügen Sie das Gerät über den Monitor hinzu …

Abbildung 7: Anschließend fügen Sie das Gerät über den Monitor hinzu …

Damit Qemu das reale USB-Gerät durchreichen kann (Abbildung 8), muss es auf seine Gerätedatei auch zugreifen dürfen. Ist das nicht der Fall, fluten zahlreiche Fehlermeldung im Stil von

/dev/bus/usb/001/003: Permission denied

die Kommandozeile. Am einfachsten starten Sie in einem solchen Fall Qemu als root statt als normaler Benutzer.

Abbildung 8: … und können dann in der virtuellen Maschine darauf zugreifen.

Abbildung 8: … und können dann in der virtuellen Maschine darauf zugreifen.

Fazit

Qemu kennt noch unzählige weitere Einstellungen. Viele betreffen dabei das Netzwerk: So können Sie beispielsweise eine Port-Weiterleitung einrichten, via TUN/TAP-Devices die virtuelle Maschine direkt in das echte Netzwerk integrieren oder in Windows-Gästen über einen SMB-Server auf Verzeichnisse des Wirtssystems zugreifen. Mehrere virtuelle Maschinen lassen sich zu einem eigenen abgeschotteten Netzwerk verbinden, einzelne Exemplare dürfen Sie per VNC fernsteuern und mit Snapshots den kompletten Zustand einer virtuellen Maschine einfrieren.

Die dazu nötigen Parameter sind allerdings nicht gerade eingängig. Wollen Sie damit experimentieren, sollten Sie einen Blick in die aktuelle Fassung der Qemu-Dokumentation werfen [5]. Die versteht sich allerdings als Referenz und liest sich daher entsprechend spröde. Für Einsteiger empfiehlt sich das etwas ältere, dafür aber kostenlos im Internet verfügbare Buch “qemu-kvm & libvirt” [6] von Robert Warnke und Thomas Ritzau. Weitere Kurzanleitungen und Howtos sammelt das KVM-Wiki [7].

Viele der Anleitungen, Tipps und Tricks, die Sie im Internet finden, sind jedoch mittlerweile veraltet oder überholt – das gilt sogar für die offizielle Qemu-Dokumentation. So lässt sich beispielsweise Windows XP in aktuellen Qemu/KVM-Versionen problemlos starten, auch ohne dass Sie Qemu mittels -no-acpi aufrufen.

Haben Sie erst einmal die zahlreichen Parameter verinnerlicht, starten Sie jedoch auf der Kommandozeile mit KVM schneller eine virtuelle Maschine, als Sie die Maus in Virtualbox und Co. dreimal geklickt haben. 

Glossar

SeaBIOS

Open-Source-Implementation eines 16-Bit-BIOS für Intel-PCs, läuft via Emulator oder nativ (per Coreboot [8]) auf entsprechenden Maschinen.

Infos

[1] KVM: http://www.linux-kvm.org

[2] Hypervisor-Technik: http://en.wikipedia.org/wiki/Hypervisor

[3] Qemu: http://wiki.qemu.org

[4] Intel Virtualization Technology List: http://ark.intel.com/VTList.aspx

[5] Qemu-Referenz: http://qemu.weilnetz.de/qemu-doc.html

[6] Qemu-Buch: Robert Warnke und Thomas Ritzau, “qemu-kvm & libvirt”, http://qemu-buch.de

[7] KVM-Wiki: http://www.linux-kvm.org/page/Main_Page

[8] SeaBIOS/Coreboot: http://www.coreboot.org/SeaBIOS

[9] QED-Format: http://www.linux-kvm.com/content/qed-qemu-enhanced-disk-format

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 04/2012 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben