This page (revision-14) was last changed on 16-Oct-2008 13:55 by ThomasBayen 

This page was created on 03-Oct-2006 21:29 by UnknownAuthor

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
14 16-Oct-2008 13:55 8 KB ThomasBayen to previous QEmu und Netware - Bochs nie vergessen!
13 15-Oct-2008 18:27 7 KB ThomasBayen to previous | to last Installation von Win98
12 21-May-2008 19:17 6 KB PeterHormanns to previous | to last Kategorie raus
11 21-Jan-2008 13:46 6 KB ThomasBayen to previous | to last Tagging
10 20-Jan-2008 22:27 6 KB PeterHormanns to previous | to last Tagging
9 07-Aug-2007 14:49 6 KB MarkusMonderkamp to previous | to last kqemu-linksyntax fehlerbefreit (ohne Punkt)
8 19-Jul-2007 09:59 6 KB PeterHormanns to previous | to last Link korrigiert
7 19-Jul-2007 09:58 6 KB PeterHormanns to previous | to last Debian Package of the Day
6 19-Jul-2007 09:58 6 KB PeterHormanns to previous | to last Debian Package of the Day
5 08-Jun-2007 18:54 6 KB ThomasBayen to previous | to last Netzwerkkonfiguration mit Etch
4 18-Apr-2007 17:54 5 KB PeterHormanns to previous | to last KategorieVirtualisierung
3 07-Oct-2006 22:22 5 KB PeterHormanns to previous | to last Formatiert für JSPWiki
2 07-Oct-2006 22:21 5 KB PeterHormanns to previous | to last Formatiert für JSPWiki
1 03-Oct-2006 21:29 5 KB UnknownAuthor to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

!!! QEmu

QEmu ist ein PC-Emulator [http://qemu.org],(http://qemu.org),>> der einen kompletten
Rechner in einem Fenster nachbildet. Seine
Ausführungsgeschwindigkeit ist für einen reinen Emulator
sensationell hoch. Man kann in QEmu ohne grosse Probleme z.B. eine
Windows-Installation ausführen und so das Problem umgehen, daß es
immer noch das eine oder andere Programm gibt, dass es noch nicht
in einer Linux-Version gibt.

Bei mir läuft Windows 98se geschätzt ca. 2-3 mal langsamer als
direkt auf dem Original-Rechner. Zusätzlich gibt es noch einen
Accellerator, der, falls das Wirts-System auch ein i386-System ist,
den Gast-Rechner nicht nur emuliert, sondern virtualisiert. Dadurch
soll die Geschwindigkeit dann so gut wie gleich der
Original-Geschwindigkeit sein.

Auf dieser Seite sammle ich Tips und Tricks zu QEmu.

!! Installation

In Debian Sarge ist ein Paket __qemu__ enthalten. Dieses habe ich
einfach installiert. Dann kann man mit
{{{
 qemu-img create harddisk.img 500M
}}}
ein leeres Festplatten-Image erzeugen. Ich habe ein Image meiner
Windows98-CD in das Verzeichnis kopiert (Ja - ich habe eine
Original-CD und damit eine Linzenz! :-) ) und dann den Emulator mit
folgendem Befehl gestartet:
{{{
 qemu -cdrom win98cd.iso harddisk.img -boot d
}}}
Das System bootet von cd CD und man kann Windows installieren. Der
Rest geht wie bei jeder normalen Installation. Übrigens kann man
mit obigem Befehl auch z.B. ein Knoppix-Image booten.


!! Einrichten des Netzwerks für qemu

Ich möchte gerne, daß die qemu-Instanzen direkt auf die
Netzwerkkarte zugreifen können. Hierzu richte ich eine Bridge ein.
Diese muss man sich wie einen Hub vorstellen, der das externe
Interface (eth0) und die Netzwerkkarten der qemu-Instanzen
miteinander verbindet.

Der Benutzer, unter dem qemu laufen soll, muss die Rechte haben, um
komplett auf die Netzwerkschnittstelle und damit auf den gesamten
Netzwerkverkehr zugreifen zu können,
weil der von qemu emulierte Rechner ja genau das können soll. Dies
ist eine immanente Sicherheitslücke, über die man sich im klaren
sein sollte.

Will man dieses Problem vermeiden, so darf man keine Bridge
einrichten, sondern muss auf dem Hostsystem ein Routing mit einer
geeigneten Firewall aufsetzen.

__Tip:__ Da die Einrichtung des Netzwerkes bei allen
Virtualisierungslösungen ähnlich ist, lohnt ggf. ein Blick auf
UserModeLinux.

! Debian Sarge

''Das Netzwerk ist mit der in Debian Sarge verfügbaren Version Qemu
0.6.1 nicht stabil zu betreiben. Ich empfehle wie unten angegeben
eine eigene Kompilierung, die auch den Vorteil hat, daß man das
Kernel-Modul kqemu dazubekommt.''

Als erstes erlauben wir dem Benutzer (im Beispiel qemu) also ein
paar Dinge:
{{{
 export VISUAL=/usr/bin/joe
 visudo
}}}
jetzt in die sudoers-Datei anfügen:
{{{
 qemu  ALL=(root) NOPASSWD: /usr/sbin/brctl addif bridge tun?
 qemu  ALL=(root) NOPASSWD: /sbin/ifconfig tun? 0.0.0.0 up
}}}
Nach Verlassen des Editors (mit Ctrl-K X) ist eine Datei
__/etc/udev/rules.d/021_tun_for_qemu.rules__ neu anzulegen:
{{{
 # tun-Device zugaenglich fuer User, damit qemu Netzwerken kann
 KERNEL="tun",   MODE="0660", GROUP="qemu"
}}}
Nun darf der Benutzer qemu ein TUN-Device einrichten und dieses
dann in eine vorhandene Bridge konfigurieren. Damit dies auch
automatisch geschieht, schreiben wir folgendes in
die Datei __/etc/qemu-ifup__:
{{{
 #!/bin/sh
 sudo brctl addif bridge $1
 sudo ifconfig $1 0.0.0.0 up
}}}

! Debian etch

Folgende Pakete installieren:

 aptitude install uml-utilities bridge-utils

Dann in der Datei ''/etc/network/interfaces'' folgendes eintragen und dafür den Eintrag '''auto eth0''' entfernen:

 auto bridge
 iface bridge inet static
       address 192.168.201.144
       gateway 192.168.201.1
       netmask 255.255.255.0
       pre-up tunctl -t tap0 -u tbayen
       post-down tunctl -d tap0
       bridge_ports eth0 tap0

Nun sollte man in der Datei ''/etc/qemu-ifup'' die sudo-Zeile auskommentieren (Dies ist wohl nur als Beispiel gedacht und bei obiger Vorbereitung gar nicht nötig). Ich starte qemu jetzt mit folgenden Optionen:

 qemu ...  -net nic -net tap,ifname=tap0

Das sollte reichen! Die Gast-Instanz ist nun direkt mit der Netzwerkkarte verbunden.

<<! Windows 98 als Gast>>
<<
Win98 benötigt (wie im übrigen auch MS-DOS) den sog. real-mode des Prozessors. Ausgerechnet damit haben alle ernsthaften Virtualisierungslösungen Probleme. QEMU ist die einzige Lösung, die nach meiner Erfahrung wirklich geht. Ggf. sollte man auf die kqemu-Beschleunigung verzichten (obwohl das seit neueren Versionen gehen soll). Ausserdem habe ich gelesen, daß das allerneueste [Xen] auch behauptet, real-mode virtualisieren zu können. Bei Qemu gefällt mir allerdings, daß man keine Kernelmodule benötigt. Die Geschwindigkeit ist im Vergleich zu den Rechnern, für die das System ursprünglich geschrieben wurde, immer noch mega-schnell... :-)

Zur Installation von Windows 98 sollte man laut http://qemu-forum.ipi.fi/viewtopic.php?f=9&t=3072 am besten acpi aussschalten bzw. den Bios-Treiber im Windows anders einstellen. Dennoch musste ich wohl bei jeder Installation immer mehrfach nachbessern nach Abstürzen und reboots etc. Aber nur Mut - am Ende ging es dann doch immer. -- ThomasBayen

! Novell Netware als Gast

Geht leider nicht mit Qemu. Allerdings konnte ich mit VirtualBox ein Novell 4.x und mit [Bochs|http://bochs.sourceforge.net] ein Novell 5.x installieren. Beides habe ich allerdings (noch) nicht zuende getestet, sondern nur die Installation probiert, bis der Lizenzkey verlangt wird. Tips hierzu auch auf der Seite NovellServerZugriff.


>>!! Compilieren von qemu

Da ich bei der Installation des Netzwerks einige Schwierigkeiten
hatte, habe ich mir von der Webseite die aktuellen Sourcen geholt
und diese neu übersetzt. Danach funktionierte DHCP über die Bridge
auch bei einem Windows98. Ein weiterer Grund, dies zu tun, ist, daß
man dann das __kemu__-Kernelmodul dazu übersetzen kann. Man
benötigt vor dem übersetzen noch folgende Debian-Pakete (Version
der Kernel-Headers ggf. dem laufenden Kernel anpassen):
{{{
 aptitude install libsdl1.2-dev make
}}}
Dann die Sourcen herunterladen, auspacken und
{{{
 ./configure
 make
 make install
}}}
(Man kann auch auf ''make install'' verzichten und qemu direkt aus
dem Verzeichnis ''i386-softmmu/qemu'' starten, wenn man einen
Softlink auf das Verzeichnis mit der qemu-Firmware setzt.)

!! Der Turbo: Compilieren von KQEMU

KQEmu ist ein Kernelmodul, das dafür sorgt, daß i368-Gäste auf
einem i386-Host nicht mehr emuliert, sondern virtualisiert werden.
Das bedeutet einen zusätzlichen, grossen Geschwindigkeitwachs.
Gefühlsmäßig würde ich sagen, daß die Geschwindigkeit mit kqemu
über der Hälfte des Hostsystems liegt und damit bei heutigen
Rechnern auf jeden Fall im angenehm benutzbaren Bereich. Aufgrund
der nicht-freien Lizenz muss man das Modul auf jeden Fall selbst
kompilieren, was aber kein Problem ist, wenn man soweit ist, daß
man QEmu schon kompiliert hat.

Die  beste Anleitung zur Installation ist auf der Homepage des
Projektes: <<http://fabrice.bellard.free.fr/qemu/kqemu-doc.htmlhttp://fabrice.bellard.free.fr/qemu/kqemu-doc.html.>> <<- imIm>>
Prinzip muss man folgendes zusätzlich zu obigem Ablauf machen:
{{{
 aptitude install kernel-headers-2.6.8-2-686
}}}
und das kqemu-Archiv innerhalb des qemu-Source-Verzeichnis
entpacken,bevor man ''configure'' aufruft. Dann lädt man das Modul
(wenn man udev benutzt) mit
{{{
 modprobe kqemu major=0
}}}
und legt eine Datei ''/etc/udev/rules.d/qemu.rules'' an, in der
steht:
{{{
 KERNEL="kqemu",      MODE="0660", GROUP="kqemu"
}}}
und erzeugt mit __addgroup kqemu__ eine neue Gruppe. Alle
Benutzer, die mit __adduser username kqemu__ in diese Gruppe
aufgenommen wurden, können nun auf das Kernelmodul zugreifen.
''(natürlich kann man das auch unsichererweise für alle Benutzer
freigeben, wenn man den Mode ändert und die Group weglässt...)''.

!! Links

* <<[http://wiki.ubuntuusers.de/QEMU][http://wiki.ubuntuusers.de/QEMU>> <<eine]eine>> Installationsbeschreibung für Ubuntu
* [http://debaday.debian.net/2007/07/08/qemu-easy-and-fast-processor-emulator] QEmu als "Debian Package of the Day"

<<[{Tag
;Kategorien:
<<Virtualisierung Windows}]KategorieVirtualisierung