QEMU: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
K (+interwikilink)
(kqemu existiert nicht mehr)
Zeile 1: Zeile 1:
==Ein virtueller PC mit QEMU==
 
QEMU ist ein Prozessor-Emulator, der einen virtuellen Rechner bereitstellt. Für das darin installierte Betriebssystem verhält sich QEMU wie echte Hardware. Dies ist zum Testen und zum gleichzeitigen Ausführen mehrerer Betriebssysteme auf der selben Hardware sehr hilfreich.
QEMU ist ein Prozessor-Emulator, der einen virtuellen Rechner bereitstellt. Für das darin installierte Betriebssystem verhält sich QEMU wie echte Hardware. Dies ist zum Testen und zum gleichzeitigen Ausführen mehrerer Betriebssysteme auf der selben Hardware sehr hilfreich. Zudem bietet QEMU die Möglichkeit, die Virtualisierung durch KVM zu beschleunigen (falls ein Prozessor genutzt wird, der dies unterstützt).
[[Bild:qemu-windows-xp.png|thumb|right|400px|Windows XP unter QEMU]]
[[Bild:qemu-windows-xp.png|thumb|right|400px|Windows XP unter QEMU]]


==Installation==
==Installation==
QEMU kann einfach mit [[Pacman]] installiert werden:
QEMU wird mittels
  pacman -Sy qemu
  pacman -Sy qemu
installiert.
==Installation eines Betriebssystems==
==Installation eines Betriebssystems==
Die große Stärke des puren qemus ist die Unabhängigkeit vom Type der CPU. So ist es zum Beispiel möglich auf einer normalen 32Bit CPU ein 64bit Betriebssystem zu installieren indem qemu die 64bit CPU simuliert. Diese Stärke ist aber auch die große Schwäche da durch das Simulieren viel CPU Leistung verloren geht.  
Die große Stärke des puren QEMUs ist die Unabhängigkeit vom Type der CPU. So ist es zum Beispiel möglich auf einer normalen 32Bit CPU ein 64bit Betriebssystem zu installieren indem QEMU die 64bit CPU simuliert. Diese Stärke ist aber auch die große Schwäche da durch das Simulieren viel CPU Leistung verloren geht.  


Folgende CPU typen können mit folgenden Befehlen simuliert werden.
Folgende CPU typen können mit folgenden Befehlen simuliert werden.
Zeile 27: Zeile 29:


===Erweitern des zuweisbaren Rams (als ROOT)===
===Erweitern des zuweisbaren Rams (als ROOT)===
Qemu vergibt standardmäßig 128mb Ram an das emulierte OS, um diese Grenze zu Erweitern gibt die Option "-m XXX" wobei XXX die Ramgröße in mb ist. Jedoch bewirkt diese Option alleine nichts, denn zuerst muss die Größe von /dev/shm verändert werden. Denn qemu greift auf /dev/shm zurück um Ramspeicher für das Gast OS zu erhalten.
Qemu vergibt standardmäßig 128mb Ram an das emulierte OS, um diese Grenze zu Erweitern gibt die Option "-m XXX" wobei XXX die Ramgröße in mb ist. Jedoch bewirkt diese Option alleine nichts, denn zuerst muss die Größe von /dev/shm verändert werden. Denn qemu greift auf /dev/shm zurück um Ramspeicher für das Gast OS zu erhalten.


Zeile 33: Zeile 34:
  none                  /dev/shm      tmpfs    defaults,size=XXXM            0      0  
  none                  /dev/shm      tmpfs    defaults,size=XXXM            0      0  


Zur Erklärung, mit dieser Zeile wird Speicher vom type "tmpfs"  nach /dev/shm gemountet welcher Arbeitsspeicher ist, den Qemu dann verwenden kann. Dieser Speicher kann bei System überlast auch in den Swap wandern.
Zur Erklärung, mit dieser Zeile wird Speicher vom type "tmpfs"  nach /dev/shm gemountet welcher Arbeitsspeicher ist, den QEMU dann verwenden kann. Dieser Speicher kann bei System überlast auch in den Swap wandern.


Diese Zeile dient zum erneuten mounten von /dev/shm und erspart uns einen System Neustart :D
Diese Zeile dient zum erneuten mounten von /dev/shm und erspart uns einen System Neustart:
  mount -o remount /dev/shm
  mount -o remount /dev/shm


Zeile 41: Zeile 42:
Für die Installation eine Betriebsystems erstellen wir zunächst eine virtuelle Festplatte.
Für die Installation eine Betriebsystems erstellen wir zunächst eine virtuelle Festplatte.
  qemu-img create -f qcow arch.qcow 4G
  qemu-img create -f qcow arch.qcow 4G
Nun haben wir ein Festplatten-Image ''arch.qcow'' mit einer maximalen Größe von 4GByte. Die Datei ist dabei nur so groß, wie der tatsächlich vom Gastsystem benötigte Platz.
Nun haben wir ein Festplatten-Image ''arch.qcow'' mit einer maximalen Größe von 4GByte. Die Datei ist dabei nur so groß, wie der tatsächlich vom Gastsystem benötigte Platz.


Zeile 46: Zeile 48:
Wir können das Gastsystem direkt von einem ISO-Image oder von einem physischen Medium installieren. Bei letzterem ersetzen wir den ISO-Dateinamen einfach durch das entsprechende Gerät, wie z.B. ''/dev/dvd''.
Wir können das Gastsystem direkt von einem ISO-Image oder von einem physischen Medium installieren. Bei letzterem ersetzen wir den ISO-Dateinamen einfach durch das entsprechende Gerät, wie z.B. ''/dev/dvd''.
  qemu -cdrom arch-0.7.2-ftp.iso -boot d arch.qcow
  qemu -cdrom arch-0.7.2-ftp.iso -boot d arch.qcow
Hierbei bedeutet ''-boot d'', dass wir vom virtuellem CD-ROM-Laufwerk starten wollen.
Hierbei bedeutet ''-boot d'', dass wir vom virtuellem CD-ROM-Laufwerk starten wollen.
===Starten des Gastsystems===
===Starten des Gastsystems===
Das Gastsystem lässt sich einfach durch Angabe des Fesplatten-Abbildes starten:
Das Gastsystem lässt sich einfach durch Angabe des Fesplatten-Abbildes starten:
Zeile 53: Zeile 57:
==Bedienung==
==Bedienung==
Durch Klicken mit der Maus in das Qemu-Fenster, kann die Maus im Gast genutzt werden. Durch Drücken von "Strg+Alt" kann der Mauszeiger wieder ''befreit'' werden.
Durch Klicken mit der Maus in das Qemu-Fenster, kann die Maus im Gast genutzt werden. Durch Drücken von "Strg+Alt" kann der Mauszeiger wieder ''befreit'' werden.
==Beschleunigung mit kqemu oder kvm==
Durch die Emulation einer vollständigen CPU arbeitet ein System in QEMU um Faktor 5 bis 20 langsamer als auf realer Hardware. Mit dem Kernel-Modul ''kqemu'' ist es möglich, ohne CPU-Emulation Code direkt auf der Host-CPU auszuführen. Laut Projekt liegt der Performance-Verlust dann bei maximal Faktor 2.


Alternativ ist in aktellen Kernel ab 2.6.20 mit den Modulen ''kvm-intel'' bzw ''kvm-amd'' bereits ein Beschleuniger für Prozessoren mit Virtualisierungsfunktionen vorhanden. Nach dem laden des passenden Moduls muss legendlich eine angepasste und im qemu-Paket bereits mitgelieferte Version von qemu ''qemu-kvm'' benutzt werden. Mehr Informationen zu KVM finden sich unter [http://kvm.qumranet.com/kvmwiki]
==Beschleunigung mit KVM==
===Installation von kqemu===
Durch die Emulation einer vollständigen CPU arbeitet ein System in QEMU um Faktor 5 bis 20 langsamer als auf realer Hardware. Mit KVM ist es möglich, ohne CPU-Emulation Code direkt auf der Host-CPU auszuführen, falls diese die dazu nötigen Hardware-Virtualisierungstechniken unterstützt.
Das Paket ''kqemu'' kann einfach mit [[Pacman]] installiert werden:
 
  pacman -Sy kqemu
Dazu müssen die Kernelmodule ''kvm'' und je nach Prozessortyp ''kvm-intel'' oder ''kvm-amd'' geladen werden.
Wer nicht den Standard-Kernel einsetzt, muss eine entsprechend andere Version von ''kqemu'' wählen: z.B. ''kqemu-ck''. Nach der Installation sollte man noch folgende Zeile in ''/etc/modprobe.conf'' einfügen, um ''kqemu'' auch ohne ''root''-Rechte nutzen zu können.
  modprobe kvm kvm-intel kvm-amd
options kqemu major=0
 
Nachdem das Modul mit ''modprobe kqemu'' geladen wurde, ist es auch schon einsatzbereit. Um dies bereits beim Systemstart zu laden, kann man ''kqemu'' in die [[rc.conf]] eintragen.
{{Hinweis|Der Benutzer muss Mitglied der Gruppe kvm sein.}}


===Start mit kqemu===
KVM wird mit der Option ''--enable-kvm'' aktiviert.  
Ab sofort wird kqemu automatisch für Code im User-Mode genutzt. Soll zusätzlich auch Code im Kernel-Mode auf der Host-CPU ausgeführt werden, so muss man den Parameter ''-kernel-kqemu'' beim Start von qemu mit angeben. ''-no-kqemu'' deaktiviert den Einsatz von kqemu.  


'''Vorsicht''': Das Modul ist noch in der Entwicklung und funktioniert mit manchen Gast-Systemen wie z.B. Windows 95 nicht im Kernel-Mode. Die Installation eines Betriebsystems sollte man besser ohne ''-kernel-kqemu'' machen.
==Todo==


'''Hinweis für Arch64''': Auf einem 64-Bit-System muss ''qemu'' mit ''qemu-system-x86_64'' gestartet werden, um kqemu einzusetzen.
* KVM ausführlicher
* qemu-kvm und unterschiede zu qemu


==nützliche Literatur==
==Weblinks==
* [http://fabrice.bellard.free.fr/qemu/ Projektseite von QEMU]
* [http://fabrice.bellard.free.fr/qemu/ Projektseite von QEMU]
* [http://qemu-buch.de/de/index.php/QEMU-KVM-Buch:Portal Wikibook "QEMU und KVM"]
* [http://qemu-buch.de/de/index.php/QEMU-KVM-Buch:Portal Wikibook "QEMU und KVM"]
* [http://www.linuxforen.de/forums/showthread.php?t=141201 Deutsches HOWTO von Stefan Becker]
* [http://www.linuxforen.de/forums/showthread.php?t=141201 Deutsches HOWTO von Stefan Becker]
* [http://de.wikipedia.org/wiki/QEMU Wikipedia-Artikel]
* [http://de.wikipedia.org/wiki/QEMU Wikipedia-Artikel]
[[Kategorie:Virtualisierung]]
[[Kategorie:Virtualisierung]]
[[Kategorie:Unvollständig]]
[[Kategorie:Unvollständig]]

Version vom 3. April 2010, 17:34 Uhr

QEMU ist ein Prozessor-Emulator, der einen virtuellen Rechner bereitstellt. Für das darin installierte Betriebssystem verhält sich QEMU wie echte Hardware. Dies ist zum Testen und zum gleichzeitigen Ausführen mehrerer Betriebssysteme auf der selben Hardware sehr hilfreich. Zudem bietet QEMU die Möglichkeit, die Virtualisierung durch KVM zu beschleunigen (falls ein Prozessor genutzt wird, der dies unterstützt).

Windows XP unter QEMU

Installation

QEMU wird mittels

pacman -Sy qemu

installiert.

Installation eines Betriebssystems

Die große Stärke des puren QEMUs ist die Unabhängigkeit vom Type der CPU. So ist es zum Beispiel möglich auf einer normalen 32Bit CPU ein 64bit Betriebssystem zu installieren indem QEMU die 64bit CPU simuliert. Diese Stärke ist aber auch die große Schwäche da durch das Simulieren viel CPU Leistung verloren geht.

Folgende CPU typen können mit folgenden Befehlen simuliert werden.

qemu-system-arm
qemu-system-cris
qemu-system-m68k
qemu-system-mips
qemu-system-mips64 
qemu-system-mips64el
qemu-system-mipsel
qemu-system-ppc
qemu-system-ppc64
qemu-system-ppcemb
qemu-system-sh4
qemu-system-sh4eb
qemu-system-sparc
qemu-system-x86_64

Erweitern des zuweisbaren Rams (als ROOT)

Qemu vergibt standardmäßig 128mb Ram an das emulierte OS, um diese Grenze zu Erweitern gibt die Option "-m XXX" wobei XXX die Ramgröße in mb ist. Jedoch bewirkt diese Option alleine nichts, denn zuerst muss die Größe von /dev/shm verändert werden. Denn qemu greift auf /dev/shm zurück um Ramspeicher für das Gast OS zu erhalten.

Dazu editieren wir die Folgende Zeile in unserer /etc/fstab wobei XXX für die gewünschte Größe in MegaByte steht.

none                   /dev/shm      tmpfs     defaults,size=XXXM            0      0 

Zur Erklärung, mit dieser Zeile wird Speicher vom type "tmpfs" nach /dev/shm gemountet welcher Arbeitsspeicher ist, den QEMU dann verwenden kann. Dieser Speicher kann bei System überlast auch in den Swap wandern.

Diese Zeile dient zum erneuten mounten von /dev/shm und erspart uns einen System Neustart:

mount -o remount /dev/shm

Erstellen einer virtuellen Festplatte

Für die Installation eine Betriebsystems erstellen wir zunächst eine virtuelle Festplatte.

qemu-img create -f qcow arch.qcow 4G

Nun haben wir ein Festplatten-Image arch.qcow mit einer maximalen Größe von 4GByte. Die Datei ist dabei nur so groß, wie der tatsächlich vom Gastsystem benötigte Platz.

Starten vom Installationsmedium

Wir können das Gastsystem direkt von einem ISO-Image oder von einem physischen Medium installieren. Bei letzterem ersetzen wir den ISO-Dateinamen einfach durch das entsprechende Gerät, wie z.B. /dev/dvd.

qemu -cdrom arch-0.7.2-ftp.iso -boot d arch.qcow

Hierbei bedeutet -boot d, dass wir vom virtuellem CD-ROM-Laufwerk starten wollen.

Starten des Gastsystems

Das Gastsystem lässt sich einfach durch Angabe des Fesplatten-Abbildes starten:

qemu arch.qcow

Bedienung

Durch Klicken mit der Maus in das Qemu-Fenster, kann die Maus im Gast genutzt werden. Durch Drücken von "Strg+Alt" kann der Mauszeiger wieder befreit werden.

Beschleunigung mit KVM

Durch die Emulation einer vollständigen CPU arbeitet ein System in QEMU um Faktor 5 bis 20 langsamer als auf realer Hardware. Mit KVM ist es möglich, ohne CPU-Emulation Code direkt auf der Host-CPU auszuführen, falls diese die dazu nötigen Hardware-Virtualisierungstechniken unterstützt.

Dazu müssen die Kernelmodule kvm und je nach Prozessortyp kvm-intel oder kvm-amd geladen werden.

modprobe kvm kvm-intel kvm-amd

Hinweis: Der Benutzer muss Mitglied der Gruppe kvm sein.

KVM wird mit der Option --enable-kvm aktiviert.

Todo

  • KVM ausführlicher
  • qemu-kvm und unterschiede zu qemu

Weblinks