QEMU-Puppy-Linux: Virtualisierung in der Hosentasche

09.01.2007 von Jürgen Donauer
Nicht immer hat man die Möglichkeit, eine Live-CD auf einem fremden Rechner zu booten. Wer dennoch „sein“ System verwenden will, kann auf die Kombination QEMU und Puppy Linux zurückgreifen. Damit booten Sie unter Windows oder Linux eine virtuelle Maschine mit Ihrem persönlichen Puppy-Linux.

Puppy-Linux ist bekannt als schlankes, schnelles Betriebssystem, das auch älteren Rechnern neues Leben einhauchen kann. QEMU ist eine kostenlose Open-Source-Virtualisierung. Ein findiger Entwickler hat beides vereint und QEMU-Puppy erschaffen. Es passt auf einen USB-Stick und lässt sich in jedem anderen Linux oder Windows direkt als virtuelle Instanz starten.

Somit haben Sie immer ihr eigenes Betriebssystem dabei und brauchen nur einen anderen Rechner, um es zu starten. Dieser muss lediglich ein Linux oder Windows installiert haben - Sie müssen nicht einmal den Rechner booten. QEMU-Puppy enthält eigentlich alles, was man für unterwegs benötigt. Sie finden eine Textverarbeitung, einen Browser, ein E-Mail-Programm und vieles mehr auf der schlanken Distribution. Veränderte Einstellungen und neue Dateien speichert das System auf dem USB-Stick. Diese sind beim nächsten Start wieder vorhanden. Das Gast-System bleibt dabei völlig unberührt - QEMU-Puppy hinterlässt keinerlei Spuren.

Mobiles OS: QEMU-Puppy können Sie auf jedem Linux- oder Windows-Rechner starten.

Herunterladen und Starten von QEMU-Puppy

Um QEMU-Puppy starten zu können, müssen Sie es logischerweise zunächst einmal herunterladen. Sie finden eine tar.gz-Datei auf sourceforge.net. Wahlweise können Sie es auch via BitTorrent beziehen. Auspacken können Sie die Datei unter Windows mit einem passenden Dekompressions-Programm (Winzip, 7-Zip und so weiter) oder unter Linux mit tar xzvf <Datei.tar.gz>.

Ist das getan, lässt sich das Betriebssystem unter Windows mit puppy.exe starten. Unter Linux geschieht dies mit dem Befehl ./puppy.sh. Beim ersten Start fragt das Betriebssystem nach einem Tastatur-Layout und welchen X-Server Sie verwenden möchten. Der Entwickler empfiehlt, immer den schlankeren Xvesa-Server zu verwenden. Eigene Erfahrungen bestätigen, dass es damit die wenigsten Probleme gibt. Danach können Sie eine passende Bildschirm-Auflösung wählen. Solange Sie diese nicht mit „OK“ bestätigen, erscheint dieses Fenster bei jedem Neustart. Die Wahl von 16-bit-Farbtiefe könnte einen Geschwindigkeits-Vorteil bringen.

Ansichtsache: Mit diesem Programm bestimmen Sie die Bildschirm-Auflösung des virtuellen Betriebssystems.

Virtualisierung beschleunigen

Für QEMU gibt es ein Beschleunigungs-Programm namens KQEMU. Das Programm beschleunigt die virtuelle Instanz erheblich. Möglich ist das, weil die Software viel Applikations-Code direkt im Host-Prozessor ausführt. Der Entwickler hat es nicht implementiert, da es laut eigener Aussage mit Vorsicht zu genießen ist. Er gibt drei Gründe an, warum es nicht in QEMU-Puppy enthalten ist.

KQEMU unter Windows

Wer es trotzdem versuchen möchte, kann das Modul hier herunterladen. In dem entpackten Verzeichnis befindet sich die Datei kqemu.inf. Diese installieren Sie mit Administratorrechten per Rechts-Klick. Nach einem Reboot des Systems starten Sie das Modul via Commandshell: net start kqemu. Das Modul muss nach jedem Neustart erneut geladen werden. Wer möchte, kann ein Script automatisch beim Hochfahren des Systems ausführen.

Beschleunigungsmöglichkeiten unter Linux

Für das Kompilieren von KQEMU unter Linux gibt es eine Anleitung des Entwicklers. Sowohl QEMU als auch KQEMU sollten exakt gegen die gleiche Kernel-Version kompiliert sein. Die Datei puppy.sh erkennt sowohl das eigen kompilierte Kernel-Modul als auch das eigen erstellte QEMU und verwendet dies. Nach jedem Linux-Neustart muss man folgende Befehle als root ausführen:

mknod /dev/kqemu c 250 0

chmod 666 /dev/kqemu

Wem das zu lästig ist, kann die Befehle in die Datei /etc/rc.local eintragen. Somit startet das System das Kernel-Modul bei jedem Neustart automatisch. Einen weiteren Vorteil könnte der Befehl echo 1024 > /proc/sys/dev/rtc/max-user-freq bringen. Dafür müssen Sie ebenfalls root sein. Das Startscript weist Sie allerdings darauf hin, wenn es diesen Eintrag gerne hätte.

Applikationen in QEMU-Puppy

Das virtuelle Betriebssystem für Unterwegs bringt eigentlich alles an Applikationen mit, was man benötigt. So ist zum Beispiel die Internet-Suite SeaMonkey von Mozilla an Bord. Damit ist Internet-Browser, E-Mail-Programm und ein leistungsfähiges Adressbuch abgedeckt. Als Instant-Messenger steht ihnen Gaim zur Verfügung. Das gibt ihnen unter anderem Zugriff auf AOL/ICQ, Jabber, MSN, Yahoo, GroupWise und Napster. Abiword dient als Textverarbeitung und Gnumeric ist für Tabellenkalkulationen gedacht.

Auch die Sparte Multimedia-Anwendungen deckt Puppy-Linux ab. Hier finden Sie diverse Ripper und den Media-Player Gxine. Mit LinNeighborhood mangelt es auch an einem Samba-Client nicht. Für die Fernsteuerung anderer Rechner ist mit „Rdesktop RDP Client“ und „TightVnc VNC Client“ ebenfalls gesorgt.

Reichhaltig: Trotz der Schlankheit von Puppy-Linux ist sehr viel nützliche Software an Bord.

Zusätzliche Software installieren

Möchten Sie zusätzliche Software installieren, finden Sie auf dem Desktop des Betriebssystems ein Icon „Install“. Somit gelangen Sie in den Puppy Package Manager. Als nützlich erweist sich hier der PupGet Package Manager. Er verbindet sich beim Aufrufen ins Internet und stellt ihnen eine Liste aller für Puppy verfügbaren Pakete bereit. Hier finden Sie eine weitere Auswahl an Software. Zum Beispiel steht Firefox 1.5.0.3, gtksamba, Perl und sogar der Desktop-Manager GNOME zur Verfügung.

Die Bedienung ist denkbar einfach. Sie wählen die gewünschten Applikationen und fügen diese der Installationsliste hinzu. Der Paket-Manager löst ebenfalls alle Abhängigkeiten auf und installiert diese mit. Somit ist das Einspielen zusätzlicher Applikationen denkbar einfach.

Einfach: Das Installieren zusätzlicher Software aus dem Puppy-Pool ist ein Kinderspiel.

Tipps und Tricks

QEMU besitzt einen eigenen DHCP-Server und vergibt die IP-Adresse 10.0.2.15 an das virtuelle Puppy-Linux. Die Netzwerkkarte konfigurieren Sie mit dem Wizard „Menu - Setup - Network Wizard“. Vom Host-System können Sie die virtuelle Instanz nicht erreichen. Dies verhindert QEMU. In die andere Richtung funktioniert es allerdings. Sie können sowohl ins Internet als auch auf das native Host-System zugreifen.

Verbunden: Von der virtuellen Instanz ist es kein Problem ins Internet zu kommen.

Eine weitere Besonderheit von QEMU-Puppy ist, dass Sie es auch ohne Host-System direkt von einem USB-Stick starten können. Dazu müssen Sie allerdings zunächst den USB-Stick bootfähig machen. Unter Linux geschieht dies mit syslinux /dev/<usbgerät> und <Laufwerksbuchstabe>:\syslinux <Laufwerksbuchstabe> unter Windows. Dann haben Sie das Betriebssystem als Live-Version nativ auf dem Host-Rechner laufen. Allerdings gibt es hier manchmal Probleme mit USB-Geräten, die größer als ein GByte sind. Speziell dann, wenn die Cluster-Größe 16KByte übersteigt. Das trifft üblicherweise auf Massenspeicher mit mehr als einem GByte zu. Schuld hierfür ist der Boot-Loader SysLinux.

So funktioniert es: Diese Grafik zeigt, welche Verwendung die einzelnen Dateien haben und deren Mount-Punkte. (Quelle: http://erikveen.dds.nl)

Interessante Dateien

In der Datei pup_save.3fs sind alle Benutzerdaten gespeichert. Das heißt, in dieser Datei befinden sich alle Ihre persönlichen Einstellungen und neu angelegten Dateien. Um auf diese Daten Einsicht zu haben, müssen Sie nicht zwingend QEMU-Puppy starten. Diese Datei lässt sich als Loopback-Gerät in jedes andere Linux-Betriebssystem einbinden: mount -t loop pup_save.3fs /<Mountpoint>

Die Datei ext_212.sfs ersetzte der Entwickler durch eine leere Version. Laut eigener Aussage wollte er damit Platz sparen. Normale Anwender brauchen diese Datei nicht wirklich. Das Original benötigen Sie lediglich, wenn Sie eigens Programme kompilieren möchten. Sie können eine original ext_212.sfs von der Puppy-Seite herunterladen und diese verwenden. Es muss sich jedoch immer eine dieser Dateien auf dem USB-Stick befinden. Andernfalls würde QEMU-Puppy nicht starten.

Es lohnt sich auch ein Blick auf die Projekt-Seite. Dort finden Sie zum Beispiel ein Script, wie Sie mehrere Klons einer QEMU-Puppy-Instanz auf der selben Maschine laufen lassen können. Laut Entwickler kostet jeder Klon nur 172 KByte zusätzlichen Speicherplatz. Das ist selbstverständlich ohne Anwender-Daten.

Herunterfahren von QEMU-Puppy

Der Test hat gezeigt, dass Veränderungen im System ausschließlich dann gespeichert werden, wenn Sie das Betriebssystem sauber herunterfahren. Hier erlebt man eine kleine Überraschung. Denn die Schaltflächen „Reboot Computer“ und „Power-off Computer“ führen lediglich zu einem Neustart des X-Servers. Es ist aber mit einem kleinen Umweg trotzdem möglich.

Der Trick ist, dem Betriebssystem zunächst mit „Exit to prompt“ den X-Server zu entziehen. Danach haben Sie die Möglichkeit mit „poweroff <enter>“ das virtuelle System herunterzufahren. Ähnlich verhält es sich mit dem Befehl „reboot“, der QEMU-Puppy neu startet.

Doppelschritt: Wenn Sie zunächst den X-Server herunterfahren ist ein Herunterfahren des virtuellen Systems möglich.

Dateien transferieren

Laut Entwickler ist der Transfer von Dateien von der virtuellen Maschine zum Host-System nicht ganz trivial. Als besten Weg schlägt er eine Kombination aus tar und nc vor. Linux stellt diese Software normalerweise von Haus aus bereit. Für Windows stellt er tar.exe und nc.exe als Download zur Verfügung. Ein Upload zu QEMU-Puppy sähe zum Beispiel so aus: tar cv <Dateien> | nc -l -p 1234 -w 10. Eine genaue Anleitung finden Interessierte Sie auf der Projekt-Seite.

Es ist ebenfalls möglich, Daten mittels Samba zu transferieren. Dazu müssten Sie ihr QEMU-Puppy anpassen. In der Datei /etc/rc.d/rc.local könnten Sie folgende Einträge hinzufügen:

mkdir /<Verzeichnis>

smbmount //<SMB-Server>/qemu /<Verzeichnis> -o guest

Das Verzeichnis <Verzeichnis> wäre beim Aufruf des Startscripts mit der Option –smb /<Verzeichnis> verbunden: ./puppy.sh –smb /<Verzeichnis>

Fazit

QEMU-Puppy ist ein sehr interessanter Ansatz für ein schlankes Betriebssystem zum Mitnehmen. Es bringt viele nützliche, schlanke Applikationen mit, die man für unterwegs benötigt. Ein denkbarer Einsatz ist zum Beispiel auf Reisen. Wenn man sich die Rechner in einigen Internet-Cafes ansieht, kommt einem das blanke Grauen. Verseucht mit Spyware und Viren tippt man ungern irgendein Passwort in so ein System. Mit QEMU-Puppy gehört dies der Geschichte an.

An einigen Stellen hakt es allerdings noch und es bedarf Verbesserungen. Fairerweise muss man sagen, dass QEMU nicht die schnellste Virtualisierungs-Lösung ist. Aber mit einer Bildschirm-Auflösung von 800x600 und 16bit Farbtiefe lässt sich damit ganz gut arbeiten. Bei den heutigen USB-Stick-Größen tut es jedenfalls nicht weh, ein Betriebssystem vom Format QEMU-Puppy für den Notfall dabei zu haben. (jdo)