Nur ein kleiner schneller Seitensprung, ohne Spuren zu hinterlassen – und das unter den wachsamen Augen der Aktuellen? Qemu macht’s möglich.
Häufig ist es genau diese eine Windows-Anwendung, für die man als Linux-Anwender zähneknirschend doch wieder fremd geht. Notgedrungen schaufelt man einen Bereich auf der Festplatte frei und parkt dort parallel die kommerzielle Virenschleuder aus dem Hause Microsoft. Aber auch die Vielfalt der ständig aktualisierten Distributionen verlockt zu einer Probeinstallation.
Genau in diesen Fällen springt Qemu ein: Die kleine Anwendung simuliert einen kompletten Rechner (siehe Kasten “Prozessorregen”) so perfekt, dass unter ihrer Obhut komplette Betriebssysteme laufen. Auf diese Weise lässt sich beispielsweise Windows XP wie eine herkömmliche Linux-Anwendung bedienen und nutzen. Qemu bezeichnet dieses in ihm laufende Betriebssystem als Gast (Guest), das Linux-System, auf dem der Emulator läuft hingegen als Wirt oder Host.
Prozessorregen
Neben einem herkömmlichen PC emuliert Qemu noch weitere Architekturen: Darunter fallen so illustre Kandidaten wie ein Sparc-System von Sun oder ein PowerPC-Prozessor, der bis vor kurzem noch in allen Apple-Computern zum Einsatz kam. Die beliebten Embedded-Prozessoren ARM und Mips sind ebenfalls an Bord. Im Gegensatz zur PC-Emulation unterstützt Qemu diese Architekturen derzeit jedoch nur unvollständig. So fehlen mitunter wichtige Hardwarekomponenten, was beispielsweise die Installation von Mac OS auf dem PowerPC verhindert. Meist laufen auf den Exoten nur ausgewählte Linux-Distributionen, in diesem Fall Yellow Dog. Über den aktuellen Stand der Entwicklung gibt die Qemu-Website [2] Auskunft. Für jeden dort aufgeführten Computertyp bringt das Qemu-Paket eine eigenständige Anwendung mit. Bei einem PowerPC verwenden Sie beispielsweise das Programm qemu-ppc. Dessen Bedienung erfolgt analog zu seinem PC-Pendant qemu.
Installation
Qemu bekommen Sie kostenlos [1] als bereits fertiges Paket für alle gängigen Distributionen. Sie müssen das Archiv lediglich als Benutzer root in das Wurzelverzeichnis entpacken. In einem Terminalfenster führt beispielsweise der Befehl: sudo tar xvfz qemu-0.9.0-i386.tar.gz -C / zum Ziel. Das Terminalfenster können Sie bei der Gelegenheit gleich geöffnet lassen: Qemu möchte ausschließlich über die Kommandozeile bedient werden.
Ohne Herrn <i>root<i>
Mit einem kleinen Trick startet Qemu auch aus Ihrem Heimatverzeichnis. Das ist insbesondere dann nützlich, wenn Ihnen administrative Rechte versagt bleiben. Dazu entpacken Sie zunächst das Qemu-Archiv in ein Unterverzeichnis Ihrer Wahl, beispielsweise qemu. Öffnen Sie nun ein Terminalfenster und wechseln Sie direkt per cd qemu dort hinein. Jetzt starten Sie Qemu wie gewohnt, stellen der zugehörigen Befehlszeile aber noch ein ./usr/local/bin/ voran und ergänzen gleichzeitig das Ende um den Parameter -L ./usr/local/share/qemu.
Sammeltrieb
Bevor Sie Qemu zum Leben erwecken, gilt es zunächst die Installationmedien des gewünschten Gast-Betriebssystems hervorzukramen. Der Emulator verdaut dabei entweder echte Scheiben im CD- oder DVD-Laufwerk oder aber deren Abbilder mit der Endung .iso. Diese so genannten Images erstellen alle guten Brennprogramme, indem sie die Scheibe Bit für Bit auslesen und in einer mehr oder weniger großen Datei speichern.
Im Falle einer Live-Distribution, wie zum Beispiel Knoppix, war dies schon fast alles, was Sie machen müssen. Sofern noch nicht geschehen, öffnen Sie nur noch ein Terminalfenster und setzen dort den Befehl
qemu -cdrom knoppix.iso -boot d -m 512
ab. knoppix.iso steht dabei für den Namen der Image-Datei mit dem Betriebssystem – in diesem Beispiel das von Klaus Knoppers Website [3] herunter geladene Knoppix. Falls reale Medien vorliegen, verwenden Sie stattdessen
qemu -cdrom /dev/cdrom -boot d -m 512
Der von Qemu simulierte PC besitzt damit ein angeschlossenes, virtuelles CD-ROM-Laufwerk (-cdrom). Darin rotiert je nach Befehlszeile entweder die CD aus der Datei knoppix.iso oder der Datenträger im realen Laufwerk /dev/cdrom. Falls sich das Laufwerk wider Erwarten nicht über /dev/cdrom erreichen lässt, ersetzen Sie die Angabe einfach durch die passende Gerätedatei, etwa /dev/hdc oder /dev/sd2. Was hier das Richtige ist, zeigt Ihnen das Hardware-Informationsprogramm Ihrer Distribution.
Der vorletzte Parameter -boot d sorgt schließlich noch dafür, dass der virtuelle PC direkt von der CD startet. Standardmäßig weist Qemu dem virtuellen PC einen 256 MByte großen Hauptspeicher zu, was in der heutigen Zeit jedoch etwas wenig erscheint. Deshalb spendiert das obige Beispiel glatt das Doppelte, wie die Zahl hinter dem -m verrät. Den Speicher knapst der Emulator übrigens vom realen Hauptspeicher ab. Da dort auch das Wirtssystem residiert, sollten Sie hier maximal die Hälfte Ihres Hauptspeichers angeben. Sofern Sie zu viel abzweigen, verweigert Qemu den Start. Die Fehlermeldung aus Abbildung 1 dürfen Sie übrigens getrost ignorieren. Was sich hinter dem angemeckerten /dev/kqemu verbirgt, erläutert der Kasten “Raketenantrieb”. Der Kasten “Mehr RAM mit /dev/shm” zeigt, wie Sie den Arbeitsspeicher der virtuellen Maschine vergrößern.

Strg-Alt befreit sie jedoch wieder.” width=”300″ height=”240″ />
Abbildung 1: Das Qemu-Fenster fängt die Maus nach einem Klick darauf ein. Die TastenkombinationStrg-Alt befreit sie jedoch wieder.Raketenantrieb
Standardmäßig emuliert Qemu einen kompletten PC. Dazu gehört neben der Hauptplatine und einer Grafikkarte auch der Prozessor. Sofern bei Ihnen letzterer aus dem Hause Intel oder AMD stammt, können Sie Qemu dazu überreden, ihn direkt zu nutzen und so ganz nebenbei die Ausführungsgeschwindigkeit drastisch erhöhen. Um dem Emulator auf diese Weise Beine zu machen, benötigen Sie zunächst das Kernelmodul KQemu von der Qemu-Homepage [1]. Bis vor kurzem vertrieb es der Qemu-Erfinder Fabrice Bellard noch unter einer proprietären, wenn auch kostenlosen Lizenz. Erst mit der aktuellen KQemu Version 1.3.0pre10 schwenkte er auf die bekannte, freie GPL um.
Um den Nachbrenner installieren zu können, benötigen Sie nun noch die Kernel-Quellen. Das zugehörige Paket erreichen Sie über den Paketmanager Ihrer Distribution. Anschließend wechseln Sie in einem Terminalfenster in das Verzeichnis des entpackten KQemu-Archivs und rufen dort als Benutzer root./configure; make; make install auf. Das dabei erzeugte Kernel-Modul müssen Sie nun vor jedem Qemu-Start laden. Dies klappt – wiederum mit administrativen Rechten – mittels des Befehl modprobe kqemu major=0. Sollte der Emulator weiterhin die Nutzung des Geräts /dev/kqemu mit einer entsprechenden Fehlermeldung verweigern, so müssen Sie der besagten Datei noch passende Benutzerrechte gewähren. Das erledigen Sie als Root per chmod 666 /dev/kqemu.
Mehr RAM mit /dev/shm
Beschwert sich Qemu beim Start über mangelnden virtuellen Arbeitsspeicher, rüsten Sie RAM über die Schnittstelle /dev/shm nach. Geben Sie als root zunächst umount /dev/shm ein und dann wieder mount -t tmpfs -o size=528m none /dev/shm, um den virtuellen RAM auf 528 MByte zu erhöhen.
Randaleresistent
Qemu öffnet nun ein neues Fenster, in dem das Betriebssystem von der eingebundenen CD startet. Im Beispielfall aus Abbildung 2 ist dies Knoppix. Wie Sie leicht auf dessen Desktop und in seinem Gerätemanager feststellen können, sieht das Gast-Betriebssystem ausschließlich die von Qemu simulierte Hardware. Folglich glaubt in diesem Beispiel Knoppix, ein richtiges CD-Laufwerk zu nutzen, auch wenn die Daten tatsächlich aus einer Image-Datei stammen. Diese Abschottung hat den Vorteil, dass Sie im virtuellen PC nichts kaputt machen können (Abbildung 3). Im Gegenzug bekommen Sie die darin gespeicherten Daten nicht ohne Verrenkungen wieder heraus.

Abbildung 3: Wie der Gerätemanager von Windows XP beweist, sieht das installierte Gast-Betriebssystem nur die durch Qemu simulierte Hardware.
Feste Platten
Die bislang von Qemu emulierte Hardware fällt mit einem CD-Laufwerk recht dürftig aus. Für die dauerhafte Installation eines Betriebssystems fehlt insbesondere ein schöner großer Massenspeicher. Für Windows XP sollte eine mindestens 5 GByte große Festplatte her. Diesen Platz muss das Wirtssystem auf irgendeine Art und Weise bereitstellen. Dazu könnte man eine komplette, vorhandene Festplatte nutzen. Den gewählten Kandidaten stellt man dann Qemu über den zusätzlichen Parameter -hda /dev/hdb zur Verfügung, wobei hdb durch den Gerätenamen der entsprechenden Platte zu ersetzen ist. Insgesamt aktiviert man Qemu in einem solchen Fall also per:
qemu -cdrom /dev/cdrom -boot d -m 512 -hda /dev/hdb
Diese Form der Festplattennutzung führt jedoch recht häufig zu Datenverlusten und ist somit wenig empfehlenswert. Auf keinen Fall sollten Sie Qemu Ihre derzeitige Haupt-Festplatte oder gar ein bestehendes Windows übergeben: Da sich die Hardware des virtuellen PCs vollkommen von derjenigen unterscheidet, unter der das Windows-System ursprünglich installiert wurde, läuft das emulierte Ergebnis in den meisten Fällen nur noch extrem absturzfreudig vor sich hin.
Bitte recht freundlich
Aus diesem Grund greift man besser auf das schon bei den CDs angewendete Prinzip zurück und realisiert die Festplatte ebenfalls über eine Imagedatei. Bei deren Erzeugung hilft das mitgelieferte Programm qemu-img. Der Befehl
qemu-img create dsk.img 5G
erstellt (create) unter dem Dateinamen dsk.img eine neue virtuelle Festplatte mit einer Kapazität von 5 GByte. Doch Vorsicht: Da es sich um ein 1:1-Abbild einer – wenn auch leeren – Festplatte handelt, wird folglich auch die Image-Datei 5 GByte groß. Sie müssen auf Ihrer realen Festplatte also entsprechend viel Speicherplatz freischaufeln. Wie man mit einem kleinen Trick die Image-Datei zumindest vorübergehend eindampft, verrät der Kasten “Schrumpfungsprozess”.
Schrumpfungsprozess
Die Abbilder einer Festplatte erreichen schnell einen beträchtlichen Umfang: Liest man eine 10 GByte große Festplatte Bit für Bit in eine Datei, so fällt auch das Resultat 10 GByte groß aus. Meist sind Festplatten jedoch nicht bis zum Rand gefüllt: Die unbelegten Bereiche könnte man also direkt überspringen. Den Rest komprimiert man dann noch mit einem Packprogramm. Genau diese beiden Strategien verwendet das QCOW-Dateiformat (das “COW” steht für “Copy On Write”).
Mit qemu-img create -f qcow kleineplatte.img 10G erhalten Sie solch ein Image, das zunächst nur einen Bruchteil einer korrespondierenden realen Festplatte in Anspruch nimmt und zudem mit den gespeicherten Daten mitwächst. Allerdings frisst nur Qemu die so präparierten Festplatten-Abbilder. Mittlerweile wurde das QCOW-Format durch das neuere QCOW2 ersetzt. Diesen Nachfolger sollten Sie derzeit jedoch noch nicht verwenden: Durch einen Programmfehler in der aktuellen Qemu-Version 0.9.0 kommt es bei Image-Größen von über 4GByte zu Datenverlusten. Qemu und Qemu-img kennen übrigens auch die Image-Formate des Konkurrenten VMware in den Versionen 3 und 4.
Qemu teilt man nun wieder mit, dass es die erzeugte Datei einbinden und wie eine richtige Festplatte nutzen soll:
qemu -cdrom /dev/cdrom -boot d -m 512 -hda dsk.img
Das von CD gestartete Betriebssystem findet im virtuellen PC nun am ersten Festplattenanschluss eine leere Festplatte mit 5 GByte, auf der Sie nun Windows oder jedes andere Betriebssystem wie gewohnt installieren. Sobald das Gast-Betriebssystem einmal auf der virtuellen Festplatte ruht, werfen Sie das CD-Laufwerk über Bord und starten direkt von der “Harddisk”:
qemu -boot c -m 512 -hda dsk.img
Mit einer solchen virtuellen Festplatte kann man ein paar interessante Dinge anstellen: So lässt sich die zugehörige Image-Datei nicht nur kopieren, sondern auch auf einer DVD archivieren oder kurzerhand auf einem anderen PC mit installiertem Qemu übertragen und dort weiternutzen.
Fensterln leicht gemacht
Möchten Sie Windows als Gast im virtuellen PC von Qemu installieren, so lauern einige Fallstricke:
- Falls Windows die Uhrzeit nicht korrekt anzeigt, starten Sie Qemu mit dem zusätzlichen Parameter
-localtime. Er ist generell bei allen Betriebssystemen notwendig, die sich an der lokalen Zeit und nicht der Greenwich Mean Time (GMT) orientieren. - Windows 9x (Abbildung 4) eckt in einigen Fällen mit dem ACPI-Powermanagement an. Dies umgehen Sie, indem Sie Qemu stets mit dem zusätzlichen Parameter
-no-acpiaktivieren. - Das neue Windows Vista verweigert derzeit noch die Zusammenarbeit. Dies liegt weniger an Qemu, als am verwendeten Ersatz-BIOS. Letzterem fehlen einige von Vista verlangte Funktionen.
- Demgegenüber stoßen die funktionierenden Windows-Versionen irgendwann an die Grenzen der emulierten Cirrus-Logic-Grafikkarte GD5446. Sie schiebt hohen oder krummen Auflösungen einen Riegel vor. Glücklicherweise existiert noch eine alternative Karte, die Sie über den Parameter
-std-vgaaktivieren.
Obendrein erkennen einige Windows-Systeme nicht jeden CD-Wechsel. Das ist insbesondere dann ärgerlich, wenn man die “Windows XP Media Center Edition 2005” installieren möchte. Um Windows das neue Medium unterzuschieben, wechseln Sie zunächst in den Qemu-Monitor und hängen die alte CD aus. Wieder zurück in Windows, klicken Sie das CD-ROM-Symbol im Arbeitsplatz oder im Dateiauswahl-Fenster (bei der Installation hinter Durchsuchen…) mit der rechten Maustaste an, aktivieren Auswerfen und wechseln auf die vorhandene Festplatte. Im Monitor hängen Sie nun die neue CD ein, die Windows ab sofort wieder ordnungsgemäß erkennen sollte. Im Fall der Media-Center Installation müssen Sie noch abschließend die angemahnte Datei aufspüren und auswählen.

Abbildung 4: Emulatoren eignen sich auch hervorragend, um alte Software zu reanimieren. Hier läuft ein circa 10 Jahre altes Windows98.
Harte Ware
Der virtuelle PC besitzt nun ein CD-Laufwerk und eine Festplatte, auf der das Betriebssystem ruht. Wer mag, darf noch weitere Hardwarekomponenten einsetzen, wie beispielsweise eine Soundkarte:
qemu -cdrom /dev/cdrom -boot d -m 512 -hda festplatte.img -soundhw sb16
Qemu emuliert damit eine Soundkarte, die kompatibel zur legendären Soundblaster 16 ist. Alle halbwegs modernen Betriebssysteme bringen dafür bereits passende Treiber mit.
Um die Einrichtung eines Netzwerks muss man sich hingegen keine Gedanken machen: Qemu stellt eine NE2000-kompatible Netzwerkkarte bereit, die es selbständig aktiviert und einrichtet. Das Betriebssystem im virtuellen PC erhält über den im Emulator eingebauten DHCP-Server automatisch eine IP-Adresse. Sofern Sie auf Ihrem realen Computer eine Verbindung ins Internet aufgebaut haben, nutzt das Gast-Betriebssystem sie automatisch mit.
Eingriff
Im laufenden Betrieb wechselt die Tastenkombination [Strg]+[Alt]+[2] in den so genannten Monitor. In dieser Kommandozentrale tauschen Sie mit kurzen Textbefehlen unter anderem die CDs in den virtuellen Laufwerken aus oder melden ein USB-Gerät an. Per system_reset starten Sie den virtuellen PC neu, ein help liefert eine Übersicht aller möglichen Kommandos. Um eine vorhandene CD auszuwerfen, genügt ein eject cdrom. Eine neue Image-Datei oder eine reale CD melden Sie danach per change cdrom Dateiname an. Die neue USB-Maus aktivieren Sie mittels usb_add mouse, wodurch Sie gleichzeitig den simulierten PS/2-Anschluss deaktivieren. Neben der Maus unterstützt Qemu noch USB-Massenspeicher nach dem Prinzip der Festplattenimages: usb_add disk:usbimage.img. Für reale USB-Geräte kennt Qemu eine Durchleitung, die jedoch noch in den Kinderschuhen steckt.
Über [Strg]+[Alt]+[1] gelangen Sie schließlich wieder zurück zum virtuellen PC. Das darin laufende Betriebssystem sollten Sie übrigens immer wie gewohnt beenden, beziehungsweise herunterfahren. Das Qemu-Fenster einfach zu schließen wirkt so, als würden Sie an Ihrem realen PC im laufenden Betrieb den Stecker aus der Wand ziehen.
Alle Mann von Bord
Qemu versteckt die reale Hardware vor dem Gast-Betriebssystem – und umgekehrt. Es stellt sich daher schnell die Frage, wie man Dateien zwischen realem und virtuellen PC austauscht. Der einfachste Weg führt über das Netzwerk und einen so genannten SSH-Server. Letzteren bringen alle modernen Linux-Distributionen schlüsselfertig mit. Unter dem Gast-Betriebssystem benötigt man nur noch einen entsprechenden SSH-Client. Linux liegt dieses Werkzeug in der Regel ebenfalls standardmäßig bei, für Windows finden Sie im Internet zahlreiche Alternativen [7].
Öffnen Sie nun im virtuellen PC ein Terminalfenster (beziehungsweise die Eingabeaufforderung) und rufen darin den Befehl scp text.txt klaus@10.0.2.2:~ auf. Damit kopieren Sie die Datei text.txt in das Heimatverzeichnis des Benutzers Klaus auf dem realen PC. Der umgekehrte Weg funktioniert analog: scp klaus@10.0.2.2:~/text.txt .. Der Wirt ist dabei immer über die IP-Adresse 10.0.2.2 erreichbar.
Qemu kennt noch ein paar weitere, komplexere Möglichkeiten des Datenaustauschs, auf die das Qemu-FAQ ausführlich eingeht [1].
Fazit
Auch wenn die Geschwindigkeit von Qemu teilweise zu wünschen übrig lässt, erlaubt der Emulator die schnelle Installation eines neuen oder fremden Betriebssystems. Wer dabei auf den Geschmack gekommen ist, findet im FreeOS-Zoo unter [4] gleich eine ganze Palette exotischer Kandidaten. Auch für die etwas kryptische Bedienung auf der Kommandozeile bietet das Internet Abhilfe: Zu den inoffiziellen, grafischen Oberflächen zählt beispielsweise der Qemu-Launcher [5].
Glossar
-
NE2000
-
Novell Eagle NE2000, eine ab Mitte der 80er-Jahre weit verbreitete Low-Cost-Netzwerkkartenarchitektur für den 16-Bit-ISA-Bus auf Basis des DP8390-Controllers von National Semiconductor. Novell stellte das Design frei zur Verfügung und animierte damit wunschgemäß zahlreiche Hersteller zu Nachbauten.
[1] Qemu: http://fabrice.bellard.free.fr/qemu/
[2] Status der Qemu-Entwicklung: http://fabrice.bellard.free.fr/qemu/status.html
[3] Knoppix: http://www.knopper.net
[4] FreeOS-Zoo: http://www.oszoo.org
[5] Qemu-Launcher: https://gna.org/projects/qemulaunch/
[7] Freie SSH-Programme für Windows: http://www.openssh.com/windows.html






