Haben Sie sich schon mal gewünscht, Linux im Fenster unter Linux auszuführen? Oder wie wäre es mit DOS unter Linux? QEMU ist eine Open-Source-Anwendung, die einen kompletten PC in Software emuliert.
Programme, die einen kompletten Computer in Software nachbilden, heißen Emulatoren. Sie können eine solche virtuelle Umgebung nutzen, um Software oder sogar ein anderes Betriebssystem zu testen. Die bekanntesten Systememulatoren für Linux sind Bochs [1], ein leistungsfähiges Programm, das leider schwer zu konfigurieren ist, und VMware [2], ein sehr guter und schneller Emulator. Leider handelt es sich bei letzterem um ein kommerzielles Produkt, das nicht gerade billig ist (siehe Artikel in diesem Heft). In diesem Artikel erfahren Sie alles über den leistungsfähigen, kostenlosen und einfach einzurichtenden Systememulator QEMU.
Er ist sehr bedienerfreundlich und erledigt über einfache Befehle selbst für Aufgaben, die sich mit anderen Emulatoren nur schwer erschlagen lassen. Der Artikel demonstriert den Einsatz von QEMU in verschiedenen echten Szenarien, zeigt aber nur einen Teil des großen Funktionsumfangs. Wenn Sie mehr als die Spitze des Eisbergs sehen wollen, downloaden QEMU selbst und experimentieren Sie nach Herzenslust.
QEMU Installieren
QEMU ist entweder als Quellcodearchiv oder als kompiliertes Linux-Programm erhältlich. Beide Versionen finden Sie auf der QEMU-Homepage [3] und der Heft-CD. Downloaden Sie die binäre Version und entpacken Sie sie als Administrator im Wurzelverzeichnis:
$ su [Root-Passwort eingeben] # tar zxvf ? qemu-0.6.1-i386.tar.gz -C / # qemu (als Test)
Wenn Sie Probleme mit der vorkompilierten Version von QEMU haben, oder es vorziehen, QEMU aus dem Quellcode zu installieren, laden Sie das neueste Quellcodearchiv herunter und geben die folgenden Befehl in einem Terminalfenster ein:
$ tar zxvf qemu-0.6.1.tar.gz $ cd qemu-0.6.1 $ ./configure $ make $ su -c 'make install'
Sie müssen QEMU innerhalb einer X-Window-Umgebung ausführen. Wenn Sie QEMU starten, emuliert es den Prozessor Ihres echten Computers. Besitzen Sie also einen Pentium II, bildet QEMU auch einen Pentium II nach. Schlägt in Ihrem Computer das Herz eines PowerPC, passt sich QEMU dem an. Um eine andere Hardwarearchitektur zu emulieren, existiert der qemu-Befehl in anderen Varianten, an denen der Architekturname hängt: zum Beispiel qemu-arm, qemu-ppc oder qemu-sparc. Um eine Liste der von QEMU unterstützten Architekturen zu erhalten, tippen Sie auf der Kommandozeile qemu- und drücken Sie zweimal [Tab].
Eine Live-CD starten
Wenn Sie beispielsweise das ISO-Image einer Linux-Distribution auf der Linux User-CD neugierig macht, können Sie QEMU benutzen, um die Distribution zu testen. Angenommen, Sie haben ein ISO-Image von Knoppix [4] unter dem Namen knoppix.iso gespeichert und wollen das Image vor dem Brennen testen. Öffnen Sie ein Terminalfenster und geben den folgenden Befehl ein:
qemu -cdrom knoppix.iso
Ein Fenster öffnet sich und die Emulation startet, als würde das Programm auf einer echten Hardware ausgeführt. Knoppix zeigt ein grafisches Bootfenster und startet eine GUI, wenn Sie sich für den grafischen Modus entscheiden. Sie können Knoppix wie gewohnt starten und nutzen. Allerdings läuft die Distribution auf dem Emulator etwas langsamer als auf echter Hardware. Die Kontrolle über den Mauszeiger erlangt QEMU, indem Sie in das Fenster klicken. Zurück zum richtigen Betriebssystem gelangen Sie mit den Tasten [Strg-Alt].
Wenn Sie mit dem Internet und der Host-Umgebung kommunizieren wollen, nutzen Sie die Option -user-net:
qemu -user-net -cdrom knoppix.iso
QEMU baut hinter den Kulissen ein komplettes virtuelles Netzwerk auf. Zum Beispiel besitzt der emulierte Router, über den das in QEMU laufende Betriebssystem ins Netz geht, die Adresse 10.0.0.2.
Haben Sie einen Samba-Server auf dem System installiert, kann die emulierte Umgebung darüber auf den echten Computer zugreifen. Dazu verwenden Sie die -smb Verzeichnis. Diese Option funktioniert nur in Verbindung mit -user-net. Läuft in QEMU Windows, müssen Sie die Adresse des Samba-Servers eintragen. Unter Windows 98 und alten NT-Varianten tragen Sie dazu in C:\WINDOWS\LMHOSTS folgende Zeile ein:
10.0.2.4 smbserver
Im emulierten Windows finden Sie den Sambaserver dann in der Netzwerkumgebung unter dem Namen smbserver.
Wenn Sie eine echte CD testen wollen, starten Sie den Emulator mit der Gerätedatei des CD-ROM-Laufwerks:
qemu -user-net -cdrom /dev/cdrom
Vorher legen Sie die CD ins CD-ROM-Laufwerk ein, mounten sie aber nicht. Beim Start der Emulation greift QEMU auf die Gerätedatei, statt auf das ISO-Image zu. Mithilfe dieser Option können sowohl das Hostsystem als auch das emulierte System CDs oder Disketten benutzen.
Echte Festplatte nutzen
Gerätedateien benutzen Sie auch, wenn Sie ein zweites Betriebssystem von der echten Festplatte starten wollen. Ein typisches Beispiel ist eine Festplatte mit zwei unterschiedlichen Versionen von Linux, zum Beispiel Fedora und Ubuntu. Unter normalen Umständen müssten Sie alle Programme schließen und das System neu starten. Mit QEMU booten Sie das zweite Betriebssystem ohne Neustart.
qemu -snapshot -hda /dev/hda
Je nach Zugriffsrechten müssen Sie QEMU nun eventuell als Administrator ausführen. Die Option -snapshot gibt an, dass alle Änderungen der Festplatte in eine temporäre Datei statt auf die Festplatte selbst geschrieben werden. Sie verhindert den Datenverlust für den Fall, dass sich die Emulation auf derselben Festplatte des Hostsystems befindet. Wenn Sie einen Bootloader wie Grub im auf der echten Festplatte installiert haben, erscheint sogar das Bootmenü.
Die Option -m legt die virtuelle RAM-Speichergröße (in MByte) für die Emulation fest (standardmäßig 128 MByte). Verfügt Ihr PC über genügend RAM-Speicher, verbessern Sie die Performance der Emulation, indem Sie den virtuellen Speicher vergrößern. Folgender Befehl setzt den QEMU-Speicher auf 256 MByte:
qemu -snapshot -m 256 ? -hda /dev/hda
Linux Installieren
Wenn Sie eine Linux-Version in der emulierten Umgebung installieren wollen, benötigen Sie dazu eine Datei, die QEMU als virtuelle Festplatte nutzt. Diese legen Sie mit dem Tool namens qemu-img an, das im Lieferumfang der QEMU-Distribution enthalten ist. Sie geben lediglich den Namen (hdd.img) und die Größe (in MByte) des Images an:
qemu-img create ? /Pfad/zu/hdd.img 2000M
Jetzt können Sie eine Linux-Distribution direkt vom ISO-Image installieren, zum Beispiel die Ubuntu-Distribution. Nachdem Sie das ISO-Image für Ubuntu herunter geladen haben [5], benötigt qemu noch ein paar Informationen: die Datei der virtuellen Festplatte (-hda hdd.img), den Pfad des ISO-Images, das als CD-ROM gilt, sowie das Boot-Device -boot d (Abbildung 2).
qemu -hda /Pfad/zu/hdd.img ? -cdrom ubuntu.iso -boot d
Manche Distributionen umfassen mehr als eine CD – Sie müssen die Scheiben also wechseln, während QEMU läuft. Dazu dient die Option -monitor stdio, die ein Fenster zur Eingabe öffnet, den so genannten Monitor:
qemu -monitor stdio -hda fedora.? img -cdrom fedora_cd1.iso -boot d
Mit verschiedenen Monitor-Befehlen können Sie die Emulation neu starten (system_reset), den Status speichern (savevm Dateiname), um ihn zu einem späteren Zeitpunkt wiederherstellen zu können (loadvm), oder die Datei für ein bestimmtes emuliertes Gerät ändern. CDs wechseln Sie dann folgendermaßen:
qemu change cdrom fedora_cd2.iso
Nach Abschluss der Installation findet sich auf der echten Festplatte ein Image für die virtuelle Disk.
DOS und Windows
Ein typisches Szenario stellt der Fall dar, dass ein benötigtes Programm nur unter DOS läuft. Statt dafür extra eine 50-MByte-Partition anzulegen und wirklich DOS zu installieren, können Sie QEMU mit einem FreeDOS-Image [6] starten (FreeDOS steht unter der GPL-Lizenz). Ein fertiges Festplatten-Image von FreeDOS finden Sie unter [7] oder auf der Heft-CD.
Haben Sie die Datei freedos-beta9rc5.tar.bz2 mit tar xfj entpackt, steht Ihnen ein QEMU-Festplatten-Image zur Verfügung, das Sie als Parameter übergeben:
qemu -hda freedos.dsk -fda ? /dev/fd0 -boot c
Die Option -fda ermöglicht, ähmlich wie die beschriebenen -hda und -cdrom, in der emulierten Umgebung vom echten Diskettenlaufwerk zu lesen. Der Befehl startet eine voll funktionsfähige Version von FreeDOS und Sie können ein Verzeichnis für Ihr DOS-Programm anlegen sowie die benötigten Dateien dorthin kopieren.
Ähnlich wie bei FreeDOS handelt es sich bei ReactOS um den Klon eines Microsoft-Betriebssystems. Ziel des ambitionierten Projekts ist es, voll kompatibel zu Windows sein. Bis dahin ist es allerdings noch ein weiter Weg. Um ohne Installation einen Blick auf den aktuellen Stand zu werfen, bietet sich ein Emulator an. Auf der Heft-CD befindet sich ein gepacktes ISO-Image von ReactOS, das Sie mit unzip reactos-0.2.5-iso.zip entpacken. Legen Sie für die ReactOS-Installation eine leere virtuelle Festplatte an und starten Sie dann QEMU mit dem ISO-Image als virtuelles CD-ROM-Laufwerk:
qemu-img create reactos.img ? 1000M qemu -cdrom ReactOS.iso -hda ? reactos.img -boot d
Nach einem Druck auf die Eingabetaste erscheint der von Windows NT bekannte blaue Bildschirm zur Installation (Abbildung 4).

Abbildung 4: Der ReactOS-Installationsbildschirm orientiert sich am Aussehen des Vorbilds Windows NT.
Folgen Sie den Anweisungen, um ReactOS auf der virtuellen QEMU-Disk zu installieren. Sind sie damit fertig, können Sie QEMU mit der Option -boot c neu starten und damit ReactOS von der emulierten Festplatte booten. Die grafische Oberfläche erinnert bereits an das angestrebte Vorbild, bis zur vollständigen Kompatibilität fehlt allerdings noch einiges.
Zusammenfassung
QEMU eignet sich insbesondere zum Testen anderer Betriebssystem wie NetBSD oder BeOS. Ein großes Archiv mit fertigen Betriebssystem-Images finden sie auf der Site FreeOSZoo [10]. Außerdem können Sie Images verwenden, die für den Konkurrenten Bochs [11] erstellt wurden.
Generell handelt es sich bei QEMU um einen leistungsfähigen Emulator. Wie seine Konkurrenten leidet er unter Performance-Problemen, denn emulierte Hardware ist stets langsamer als echte. Zwar läuft QEMU ähnlich schnell wie der freien Emulatoren Bochs, aber langsamer als das kommerzielle Produkt VMware.
Infos
[1] Bochs-Homepage: http://bochs.sourceforge.net
[2] VMware-Homepage: http://www.vmware.com
[3] QEMU-Homepage: http://fabrice.bellard.free.fr/qemu
[4] Knoppix-Homepage: http://www.knoppix.net
[5] Ubuntu-Homepage: http://www.ubuntulinux.org
[6] FreeDOS-Homepage: http://www.freedos.org
[7] Bochs-FreeDOS 100-MB-Image: http://prdownloads.sourceforge.net/bochs/fdos-100meg.tar.gz?download
[8] SEAL-Homepage: http://sealsystem.sourceforge.net
[10] FreeOSZoo-Homepage: http://www.freeoszoo.org
[11] Bochs-Images: http://sourceforge.net/project/showfiles.php?group_id=12580&package_id=27799








