Qemu spart Zeit
Es gibt manche Dinge, die bekommt ich erst nach Jahren mit und wenn man es dann mal ausprobiert frage ich mich regelmäßig "warum habe ich das nicht schon vor langer Zeit so gemacht?". Eine solche Sache ist Qemu. Damit lässt sich nämlich unter anderem sehr bequem eine virtuelle Linux Umgebung aufsetzen, die dann z.B mit 'dd' auf eine beliebigen Datenträger kopiert werden kann. Gerade auf älteren Maschinen dauert so eine Installation ja gerne mal ein bißchen länger...
Qemu ist in den offiziellen Paketquellen von Debian und ArchLinux verfügbar und lässt sich wie gewohnt bequem installieren:
Debian
#apt-get install qemu
ArchLinux
#pacman -S qemu
Die Bedienung geschieht vollständig über die Kommandozeile, wer möchte kann sich aber eines der vielen grafischen Frotends für QEMU installieren.
1. Festplattenimage erzeugen
qemu-img create debian.img 10G
2. Qemu starten und ISO-Image booten
qemu-system-i386 -enable-kvm -hda debian.img -cdrom debian_install.iso -boot d -m 512
Damit wird qemu gestartet. Neben der Architektur (hier i386) bietet qemu eine bermerkenswerte Ausdwahl verschiedener Prozessorarchitekturen, darunter auch bspw. die ARM-Architektur. "enable-kvm" aktiviert die Kernel-Virtualisierung, was für eine spürbare Beschleunigung der VM sorgt. Mit 'hda' gibt man das Festplattenimage an, mit 'cdrom' das Installationsimage. Damit die VM beim Start dieses Image (standardmäßig wird von 'hda' gebootet) bootet, wählt man die Option '-d boot'. Letztendlich weist man mit der Option '-m 512' der VM noch 512 MB Arbeitsspeicher zu. Hat man die Installation abgeschlossen, kann man beim nächsten Mal das Iso-Image weglassen:
qemu-system-i386 -enable-kvm -hda debian.img -m 512
weitere nützliche Optionen
Im Prinzip reichen die oben angeführten Befehle völlig, um eine VM aufzusetzen und diese zu starten. Wenn man sich die Manpage zu qemu anschaut, gibt es dort aber noch eine ganze Fülle von zusätzlichen Optionen, mit deren Hilfe man seine VM konkret auf die aktuellen Bedürfnisse anpassen kann. Die für mich wichtigen und interessanten Optionen habe ich mal herausgeschrieben:
- cpu 486, sagt der VM, dass man hier einen 486-er-Prozessor emulieren möchte. Leider bezieht sich das wohl nur auf die integrierten Befehlssätze der CPU. Die Taktrate orientiert sich dabei (leider) an der physisch im Rechner verbauten CPU. Wünschenswert wäre hier noch eine Option zur Regelung der Taktrate. Mit 'cpu help' kann man sich darüber hinaus alle zur Verfügung stehenden Prozessoren anzeigen lassen.
- boot gibt an von welchem Device man booten möchte. Standardmäßig wird von hda gebootet, man kann aber auch von Floppy a oder Floppy b oder eben von CD-Rom d booten.
- soundhw spezifiziert die Soundkarte. Neben der SoundBlaster 16 stehen noch weitere Emulationen zur Verfügung, mit soundhw help lassen sich diese anzeigen.
- name, hier kann man der VM einen Namen geben.
- usb, schaltet die USB-Unterstützung ein
- vga, weist der VM eine bestimmte Grafikkarte zu.
- full-screen, startet die VM im Vollbildmodus
QEMU-Management-Konsole
Mit Strg+Alt+2 gelangt man auf die QEMU-Management-Konsole (auf Strg+Alt+1 läuft die VM). Dort kann man die VM jederzeit verlassen quit (was einem 'Stecker ziehen' gleich kommt). Mit help kann man sich sämtliche verfügbaren Kommandos anzeigen lassen. Da das ziemlich viele sind, rauschen die in einem Rutsch durch. Durch die Ausgabe kann man mit Strg+Pfeil nach oben bzw. unten scrollen.
Fazit
Mit QEMU hat man ein mächtiges Werkzeug zur Emulation verschiedenster Hardware. Es lohnt sich auf jeden Fall, wenn man mal kurz ein 'Iso-Image' ausprobieren möchte ohne gleich einen ganzen Rechner neu aufzusetzen. Besonders die Möglichkeit das erstellte Image per dd auf einen physischen Datenträger zu schreiben, gefällt mir sehr.