22.11 QEMU 

QEMU ist eine freie Alternative zu VMWare Workstation. Man kann damit ebenfalls ein Betriebssystem in einer »virtuellen Maschine« installieren. Genau wie VMware sorgt QEMU dafür, dass das Gast-System glaubt, auf echter Hardware zu laufen, obwohl diese emuliert wird. Virtuelle Maschinen stellen deshalb dem Gast Pseudo-Hardware bereit und managen die Kommunikation zwischen der »echten« Hardware im System und der Hardware, die dem Gast-System vorgegaukelt wird. QEMU finden Sie wie den VMware Player in den Ubuntu-Paketquellen. Die zugehörige Dokumentation ist unter {http://fabrice.bellard.free.fr/qemu/qemu-doc.html zu finden.
22.11.1 Installation 

Die Version ohne Beschleunigung läuft deutlich langsamer, dafür ist die Installation sehr viel einfacher. Sie müssen lediglich das Paket qemu über einen Paketmanager Ihrer Wahl installieren. Die weitere Einrichtung beschreibe ich im Abschnitt).
QEMU mit Beschleunigung kompilieren
Anwendungen auf emulierter Hardware laufen immer langsamer als im unemulierten Betrieb. Um QEMU einen Turbo zu spendieren, gibt es den QEMU Accelerator, auch kqemu genannt. Diese Erweiterung ist keine quelloffene Software, da ihr Entwickler Fabrice Bellard sich diese Techologie wohl als Rentenversicherung zurückbehält. Trotzdem darf das Modul kostenlos genutzt werden. Es bringt eine Beschleunigung etwa um den Faktor 5. Zur Nutzung des Moduls muss QEMU aus dem Quellcode compiliert werden. Allerdings funktionieren Windows 95 und Windows 98 nicht mit kqemu.
Folgende Pakete müssen installiert sein:
- linux-headers-ARCH (ersetzen Sie ARCH entsprechend Ihrer Rechnerarchitektur.)
- zlib1g-dev
- texi2html
- libsdl1.2-dev
Die jeweils aktuelle Version des QEMU-Quellcodes finden Sie auf http://fabrice.bellard.free.fr/qemu/download.html. Auch das kqemu-Paket müssen Sie von dort herunterladen. Außerdem müssen Sie die alte Version gcc-3.4 des GCC installieren. Damit dieser auch verwendet wird, müssen Sie dem Compiler noch mitteilen, dass die ältere Version genutzt werden soll:
./configure --cc=gcc-3.4
Danach wird QEMU mit make und sudo make install normal Kompiliert. Für das Kompilieren von KQEMU gehen Sie entsprechend vor, müssen aber zwingend sudo make install am Ende benutzen. Kommt es beim Kompilieren von QEMU zu einer Fehlermeldung wie
/home/marcus/Software/qemu-0.8.2/usb-linux.c:29:28: linux/compiler.h: No such file or directory make[1]: *** [usb-linux.o] Fehler 1
müssen Sie in der Datei usb-linux.c den Eintrag
#include <linux/compiler.h>
auskommentieren, indem Sie ein /* davor und ein */ dahinter stellen.
/*Auszug aus usb-linux.c*/ /*#include <linux/compiler.h>*/
Laden des kqemu-Moduls
Wenn das Kompilieren fehlerfrei beendet wurde, können Sie nun testweise das KQEMU-Modul mit sudo modprobe kqemu major=0 laden. Danach sollte in der System-Logdatei /var/log/messages eine Erfolgsmeldung auftauchen.
Den System-Log können Sie sich im Terminal anzeigen lassen:
user:~$ tail -f /var/log/messages Nov 15 09:38:17 localhost kernel: KQEMU installed, max_instances=4 max_locked_mem=129560kB.
Seit Edgy können Sie das Modul folgendermaßen beim nächsten Systemstart verfügbar machen: Zunächst erweitern Sie Datei /etc/modules um folgenden Eintrag
kqemu major=0
Anschließend ergänzen Sie die Datei /etc/rcS.d/S55bootmisc.sh vor dem Eintrag : exit 0 um:
chmod 666 /dev/kqemu
Unter Dapper Drake müssen Sie anders vorgehen, da die oben genannte Variante Dapper zum Absturz bringt. Führen Sie die Konfiguration per udev durch. Erstellen Sie als erstes die Datei kqemu.rules im Verzeichnis /etc/udev und fügen folgende Zeile ein
KERNEL="kqemu*", NAME="%k", MODE="0666"
Danach erzeugen Sie im Verzeichnis /etc/udev/rules.d folgenden Link
sudo ln -s ../kqemu.rules z49_kqemu.rules
Nach der Installation erstellen Sie in Ihrem Heimatverzeichnis ein Verzeichnis namens »QEMU«, führen Sie dann in einem Terminal die folgenden Befehle aus:
user$ cd qemu qemu-img create hd.img 10GB
Damit haben Sie eine 10 GB große virtuelle Festplatte erstellt. Auch die Angabe der Größe in MB ist möglich:
user$ cd qemu qemu-img create hd.img 1000M
Im nächsten Schritt müssen Sie die virtuelle Maschine von der Installations-CD booten. In diesem Beispiel verwenden wir das CD-ROM-Laufwerk als Laufwerk unseres virtuellen PCs:
qemu -boot d -cdrom /dev/cdrom -hda hd.img
Das -boot d bedeutet, dass die virtuelle Maschine von CD-ROM starten soll, und ist eine kuriose Remineszenz an die Windows-Laufwerksbuchstaben. Wenn man es weglässt, bootet das System von der Festplatte.
Um ein ISO-Image anstelle einer Installations-CD zu verwenden, tippen Sie:
qemu -hda hd.img -cdrom DATEINAME.iso -boot d
Windows 98 mit der Boot-Diskette installieren
Wenn Sie keine boot-fähige Windows-98-CD zur Hand haben, dann können Sie QEMU natürlich auch von einer Diskette booten.
Legen Sie die Boot-Diskette ein, und geben Sie in der Konsole Folgendes ein:
qemu -fda /dev/fd0 -hda win98.img -boot a
Zunächst muss die virtuelle Festplatte partitioniert und formatiert werden. Dazu starten Sie nach dem Booten der Diskette das DOS-Programm fdisk in QEMU mit dem Befehl: fdisk. Nach dem Partionieren schließen Sie QEMU am besten und booten es mit dem eben genannten Befehl erneut. Nach dem Neustart formatieren Sie die virtuelle Platte mit folgendem DOS-Befehl:
format c:
Keine Angst, der richtigen Festplatte passiert nichts – nur die virtuelle Platte wird formatiert. Danach müssen Sie QEMU noch einmal beenden. Nun legen Sie die Windows-98-CD ein und starten QEMU erneut, diesmal mit dem Befehl:
qemu -fda /dev/fd0 -hda win98.img -cdrom /dev/cdrom -boot a
Das Setup sollten Sie nach dem Booten jetzt mit dem Befehl setup.exe starten können. Alles Weitere läuft ganz normal, wie bei jeder gewöhnlichen Windows 98-Installation.
Nein, nicht ganz: Während der Installation führt Windows 98 einen Neustart durch. An dieser Stelle müssen Sie QEMU beenden und wie folgt weitermachen:
qemu -hda win98.img -cdrom /dev/cdrom -boot c
Nach beendeter Installation können Sie Windows-98 einfach mit
qemu -hda win98.img
starten.
| Reine Prozessor-Emulation in QEMU |
|
Wenn Sie einen 64-Bit-Prozessor besitzen und auch die AMD-64-Version von Ubuntu installiert haben, können Sie eigentlich keine 32-Bit-Programme starten. QEMU schafft hier Abhilfe, da es in der Lage ist, für ein bestimmtes Programm einen 32-Bit-Prozessor zu emulieren. Dazu müssen Sie die entsprechende Anwendung mit |
| qemu-i386 <anwendung> |
|
starten. Um wine unter einem 64-Bit-Prozessor mit QEMU zu emulieren, sollten Sie die Dokumentation auf der Homepage (http://fabrice.bellard.free.fr/qemu/qemu-doc.html) des QEMU-Projekts zurate ziehen. |
Windows 2000 installieren
Um Windows 2000 unter QEMU zu installieren, müssen Sie dieses mit der zusätzlichen Option -win2k-hack starten werden, um zu verhindern, dass die Festplatte im Verlauf der Installation fälschlicherweise als voll erkannt wird.
Größeren Arbeitsspeicher für Gastsysteme erlauben
QEMU wird standardmäßig mit einer Arbeitsspeicherzuteilung von 128 MB für das Gastsystem gestartet. Da dies zugegebenermaßen für moderne Windows-Versionen ein wenig knapp ist, können Sie einen größeren Arbeitsspeicher beim Start von QEMU zuteilen. Dazu ist allerdings eine kleine Vorbereitung notwendig. Zuerst binden Sie das temporäre Dateisystem durch einen Eintrag in die etc/fstab dauerhaft ein:
# /dev/shm vergrössern für Qemu # none /dev/shm tmpfs defaults,size=528M
Der Eintrag size=528M ist bewusst größer als 512 MB gewählt, da das temporäre Dateisystem stets ein wenig größer als der tatsächlich benötigte Arbeitsspeicher des Gastsystems sein sollte. Mit dem Befehl sudo mount -o remount /dev/shm binden Sie das temporäre Dateisystem mit sofortiger Wirkung ein. Um dem Gastsystem 512 MB Arbeitsspeicher zuzuteilen, geben Sie die Option -m 512 an.
| Software von CD in QEMU installieren |
|
Wenn Sie in Ihrem Gastsystem Software von CD installieren wollen, müssen Sie beim Start von QEMU daran denken, den Parameter für das CD-ROM-Laufwerk anzugeben: |
| qemu -hda hd.img -cdrom /dev/cdrom |
22.11.2 Start des Gastsystems 

| Option | Erklärung |
|
-hda <Datei> |
Gibt das Image der primären Festplatte an. Weitere Festplatten können Sie mit -hdb, -hdc und -hdd angeben. |
|
-fda <Datei> |
Gibt Diskettenlaufwerke an. Sie können das reale Diskettenlaufwerk verwenden, wenn Sie /dev/fd0 als Dateiname angeben. |
|
-cdrom <Datei> |
Gibt das zu verwendende CD-Laufwerk an. Sie können ein Gerät wie /dev/cdrom oder eine Image-Datei angeben. |
|
-boot <Laufwerksbuchstabe> |
Gibt an, von welchem Laufwerk gestartet werden soll. Dabei steht a für Diskette, c für Festplatte und d für CD-ROM. |
|
-snapshot |
Bewirkt, dass Änderungen nicht in das Festplatten-Image geschrieben, sondern in einer temporären Datei gespeichert werden. Erst mit
|
|
- m <Speichergröße> |
Gibt den zu verwendenden Arbeitsspeicher in MB an. |
|
-user-net |
Ermöglicht einfachen Zugriff auf das Netzwerk. Das Gastsystem muss zur Verwendung von DHCP konfiguriert werden. |
|
-smb <Freigabe> |
Ermöglicht den Zugriff auf Verzeichnisse und Drucker des Hosts. Dazu muss Samba auf dem Host installiert und eingerichtet sein. |
|
-no-kqemu |
Startet QEMU ohne Beschleunigung. Dies kann zur Fehlerbehebung nützlich sein. |
22.11.3 Tastenkombinationen 

| Tasten | Erklärung |
|
|
Befreit die Maus aus dem QEMU-Fenster. |
|
|
Wechselt vom Gastsystem in die QEMU-Konsole. |
|
|
Wechselt von der QEMU-Konsole in das Gast-Betriebssystem. |
|
|
Wechselt zwischen Fenster- und Vollbildmodus. |
| Screenshots vom emulierten System machen |
|
Die aktuellen QEMU-Versionen können Screenshots des Gastsystems von Haus aus erstellen: Dazu wechseln Sie mit
|
| screendump bildname.ppm |
|
erstellt. |
|
Sollte bei Ihnen diese Funktion aus irgendeinem Grund kein Ergebnis liefern, können Sie sich mit folgender Vorgehensweise behelfen. |
|
Der etwas längere Befehl |
| xwd -silent -nobdrs -id "$(xwininfo -name QEMU | grep 'Window id:' | cut -d ' ' -f4)" > DATEINAME.png |
|
erzeugt einen Screenshot namens DATEINAME.png. Um diesen Befehl abzukürzen, erstellen Sie die Datei /usr/local/bin/qemu-screenshot mit folgendem Inhalt: |
| #!/bin/sh xwd -silent -nobdrs -id "$(xwininfo -name QEMU | grep 'Window id:' | cut -d ' ' -f4)" > $1 |
|
Nach dem Speichern müssen Sie die Datei ausführbar machen, dies geht am einfachsten im Terminal mit: |
| chmod +x /usr/local/bin/qemu-screenshot |
|
Jetzt können Sie einen Screenshot mit dem Befehl |
| qemu-screenshot DATEINAME.png |
|
erstellen. |




Jetzt bestellen







