Qemu ist ein Emulator, der sich eignet, neue Versionen von CDs zu testen, ohne diese tatsächlich zu installieren. Er spart das Brennen von Cds, braucht etwas Plattenplatz für das zu testende Image und wie bei allen Emulatoren, noch mehr RAM ist besser als viel RAM.


Test Skolelinux/Debian-edu mit dem Emulator Qemu (KVM)

Wir installieren qemu mit:

# aptitude update
# aptitude install qemu

kqemu installieren

Die Standardinstallation ohne Kernelmodul lässt das Gastsystem ca 5-10 mal langsamer als das Wirtssystem laufen. Mit dem Kernelmodul verringert sich der Faktor auf 1-2, d.h. im Idealfall sollte das Gastsystem genauso schnell bis halb so langsam sein wie das Wirtssystem.

Um kqemu auf einem Debiansystem zu installieren führt man folgende Befehle aus:

# aptitude install kqemu-source
# module-assistant auto-install kqemu
# modprobe kqemu

Die erste Zeile lädt die Sourcen von kqemu herunter, die Zweite kompiliert und installiert diese und die Dritte aktiviert das Kernelmodul.

Die Installation erfolgt mit Root-Rechten. Qemu kann mit User-Rechten ablaufen, vorausgesetzt, der User hat in dem beabsichtigten Installationsverzeichnis Schreibrechte.

Dann erzeugen wir ein leeres Image, mit Platz für 3 Gigabyte:

$ qemu-img create etch-tjener.img 3G

Vorher vielleicht nachschauen, ob noch genügend Platz auf der Platte ist:

$ df -h

Möchte man kein Image im emulatorunabhängigem raw-Format, so kann man mittels

$ qemu-img create -f qcow etch-tjener.img 3GB

ein Image im qemu-eigenem Format erstellen. Das spart nicht nur Platz, sondern kann optional komprimiert und verschlüsselt werden.

Jetzt holen wir uns die Installations-Cdrom z.B. von ftp://ftp.skolelinux.no/ Bitte dabei die Hinweise unter DownLoad beachten.

$ qemu -m 256 -boot d -cdrom debian-edu-i386-binary-1.raw -hda etch-tjener.img
### je nach Installationsart liegt qemu auch unter $ /usr/bin/qemu

Das startet die Installation mit 256 MB Ram in ein qemu Image etch-tjener.img. Wir haben das Image so benannt, weil wir einen Hauptserver installieren wollen, der bei Skolelinux tjener heißt.

Nach dem Ende der ersten Installation starten Sie qemu erneut mit einem anderen Aufruf:

$ qemu -m 256 -cdrom /tmp/debian-edu-i386-binary-1.raw -hda etch-tjener.img

sonst würde qemu wieder die Installations-Cdrom beim Booten benutzen. Ab der Version Etch wird die Installation im Gegensatz zu Skolelinux 2.0 in einem Durchgang installiert, so das der 2.Installationsstart nicht mehr erfolgt.

Nach dem Ende des zweiten Installationsdurchlaufs starten Sie qemu erneut mit dem Aufruf:

$ qemu -m 256 etch-tjener.img

jetzt wir das Installationsimage nicht mehr benötigt.

Netzwerkverbindung einen Tjener mit Qemu testen

Sowohl Tjener als auch der qemu im Netzwerkmode User benutzen standardmäßig die IP 10.0.2.2.

Damit Tjener in der Standardkonfiguration laufen kann, muss qemu entsprechend konfiguriert werden. Im folgenden wird das Tap-Interface benutzt.

Die Netzwerkadresse des Hosts darf nicht aus dem Netz von tjener kommen. Besser ist es das 10er Netz nicht zu benutzen (z.B. 192.168.10.10 für den Host und 192.168.10.1 für den Router benutzen).

BENUTZER ist dabei durch den Benutzer zu ersetzen, als der qemu laufen soll.

Falls die eigenen IPs im 10er Netz liegen hat sollte man eine Bridge statt Masq. benutzen.

# modprobe tun
# echo tun | tee -a /etc/modules # alternativ mittels modconf eintragen
# chmod 666 /dev/net/tun
# aptitude install uml-utilities
# tunctl -b -u BENUTZER
# cat <<'EOF' > /etc/qemu-ifup
> #!/bin/sh
> INTF_OUT=$(netstat -rn|grep ^0.0.0.0|awk '{print $8}')
>
> sudo -p "Password for $0:" /sbin/ifconfig $1 10.0.2.1 # Standard Skolelinux Router für das neue Netz erzeugen.
> sudo iptables -t nat -I POSTROUTING -o $INTF_OUT -j MASQUERADE # mask auf das Interface mit der default route.
> echo 1 |sudo dd of=/proc/sys/net/ipv4/ip_forward # ipforward anschalten.
> EOF

Qemu kann nun wie folgt (als BENUTZER) gestartet werden:

$ qemu -net nic -net tap,ifname=tap0  -hda etch-tjener.img

Probleme

Probleme mit dem Kernelmodul nach Neustart des Systems?

Damit das kqemu Modul auch noch nach einem Neustart geladen wird, muss dieses mit dem Programm modconf installiert werden, oder per Hand direkt in der Datei /etc/modules eingetragen werden.

Weitere Empfehlung, Device einrichten

# modprobe kqemu
# mknod /dev/kqemu c 250 0
# chmod 666 /dev/kqemu

Nach Installation eines neuen Kernels, muss auch das Paket kqemu-source aktualisiert und das Modul kqemu erneut installiert werden.

Ergänzungen:

qemu mit mehreren Netzwerkkarten starten;

qemu mit Sound starten: qemu --soundhw sb16 ***** (Nur ein virtuelles System kann gleichzeitig Sound benutzen.)

Grafisches Tool zum starten von qemu: qemu-launcher

Bitte ergänzen!!!


Vergleiche DownLoad und Etch, die Version Etch-test wird zum Testen täglich neu gebaut.

Weitere Informationen siehe Deutsch: http://www.linuxforen.de/forums/showthread.php?t=141201

Oder in Englisch: http://fabrice.bellard.free.fr/qemu/qemu-doc.html, http://kidsquid.com/cgi-bin/moin.cgi/QuickStartGuide, und http://venthur.de/Linux/QemuHOWTO

Speziell zu Networking mit Qemu: http://tomas.andago.com/cgi-bin/trac.cgi/wiki/QemuNetworking http://kidsquid.com/cgi-bin/moin.cgi/QemuNetwork

Qemu (zuletzt geändert am 2013-11-03 12:10:31 durch anonym)

Alle Inhalte in diesem Wiki stehen unter der GPL.