QEMU: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
K (→‎Weblinks: sprach icons)
(Artikel grob überarbeitet)
Zeile 1: Zeile 1:
{{veraltet}}
{{unvollständig}}
{{unvollständig}}
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).
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 XEN oder 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 wird mittels
QEMU wird mittels
  pacman -S qemu
  $ pacman -S qemu
installiert.
installiert.


Zeile 11: Zeile 12:
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.
Unter anderem folgende CPU Typen können mit folgenden Befehlen simuliert werden.


  qemu-system-arm
  qemu-system-arm
Zeile 27: Zeile 28:
  qemu-system-sparc
  qemu-system-sparc
  qemu-system-x86_64
  qemu-system-x86_64
...


===Erweitern des zuweisbaren Rams (als ROOT)===
===Erweitern des zuweisbaren Rams===
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. Wieviel RAM man einstellen kann ist abhängig von
/dev/shm
, welches Teil von
tmpfs
ist. Dies bedeutet, dass
/dev/shm
standardmäßig die Hälfte des physikalischen RAM zur Verfügung hat.


Dazu editieren wir die Folgende Zeile in unserer /etc/[[fstab]] wobei XXX für die gewünschte Größe in MegaByte steht.  
In Systemen wo es noch in der
none                  /dev/shm      tmpfs    defaults,size=XXXM            0      0  
/etc/fstab
 
einen separaten /dev/shm Eintrag gibt, kann man diesen beliebig erweitern.
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.
  none                  /dev/shm      tmpfs    defaults,size=XXXM            0      0  
 
Damit die Änderung Wirkung zeigt sollte man
Diese Zeile dient zum erneuten mounten von /dev/shm und erspart uns einen System Neustart:
  /dev/shm
  mount -o remount /dev/shm
neu einbinden:
  $ mount -o remount /dev/shm


===Erstellen einer virtuellen Festplatte===
===Erstellen einer virtuellen Festplatte===
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 qcow2 arch.img 4G
 
Nun haben wir ein Festplatten-Image ''arch.img'' 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.
qemu-img
unterstützt noch weitere Image-Formate. Näheres dazu in der Man-Page.


===Starten vom Installationsmedium===
===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''.
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-system-* -hda arch.img -cdrom arch-0.7.2-ftp.iso -boot d


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.
Zeile 53: Zeile 65:
===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:
  qemu arch.qcow
  $ qemu-system-* arch.img
Bzw:
$ qemu-system-* -hda arch.img


==Bedienung==
==Bedienung==
Zeile 61: Zeile 75:
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.
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.
Wenn man systemd nutzt muss man nichts weiter beachten, ansonsten müssen die Kernelmodule ''kvm'' und je nach Prozessortyp ''kvm-intel'' oder ''kvm-amd'' manuell geladen werden. Systemd lädt die entsprechenden Module nach.
  modprobe kvm kvm-intel kvm-amd
  $ modprobe kvm kvm-intel kvm-amd


{{veraltet}}
Bin mir aktuell nicht sicher, ob das auf systemd-Systemen noch nötig ist.
{{Hinweis|Der Benutzer muss Mitglied der Gruppe kvm sein.}}
{{Hinweis|Der Benutzer muss Mitglied der Gruppe kvm sein.}}


KVM wird mit der Option ''--enable-kvm'' aktiviert.
KVM wird entweder mit der Option ''-enable-kvm'' aktiviert oder mit ''-machine type=pc,accel=kvm''.
 
==QEMU mit KVM benutzen==


==QEMU-KVM benutzen==
Mit QEMU 1.3 wurde der Fork QEMU-KVM wieder aufgenommen, wodurch QEMU-KVM als separates Paket wegfällt.


Nachdem die passenden Kernelmodule geladen wurden, lässt sich die VM einfach per
Nachdem die passenden Kernelmodule geladen wurden, lässt sich die VM einfach per
qemu-kvm
  $ qemu-system-* -enable-kvm
  $ qemu-system-* -machine type=pc,accel=kvm
mit den passenden Parametern starten.
mit den passenden Parametern starten.


ein Beispiel für das Laden eines Fedora-LIVE-Systems:
ein Beispiel für das Laden eines Fedora-LIVE-Systems:
  qemu-kvm -m 1024 -cdrom Downloads/Fedora-13-x86_64-Live.iso -boot d
  $ qemu-system-x86_64 -enable-kvm -m 1024 -cdrom Downloads/Fedora-13-x86_64-Live.iso -boot d
Dies startet die VM mit einem zugeteilten Arbeitsspeicher von 1024 MB und dem CD-Image der Fedora-LIVE-CD als eingebundenes CD-ROM Laufwerk. Von letzterem wird hier mit der Option ''-boot d'' gestartet.
Dies startet die VM mit einem zugeteilten Arbeitsspeicher von 1024 MB und dem CD-Image der Fedora-LIVE-CD als eingebundenes CD-ROM Laufwerk. Von letzterem wird hier mit der Option ''-boot d'' gestartet.


Zeile 88: Zeile 107:


  -hda FILE
  -hda FILE
Die angegebene Datei wird als erste Festplatte / Partition benutzt.
Die angegebene Datei wird als erste Festplatte / Partition benutzt. Weitere Platten werden mit -hdb, -hdc, etc eingebunden


  -vga TYP
  -vga TYP
Standard ist die Emulation von ''cirrus'', möglich sind noch: ''std'', ''vmware'' und ''none''.  
Standard ist die Emulation von ''cirrus'', möglich sind noch: ''std'', ''vmware'', ''none'' und ''qxl''. Letzteres sollte mit dem spice-Protokoll genutzt werden, was standardmäßig nicht eingebaut ist. Die entsprechenden Grafiktreiber sollten unter Umständen im Gast-System installiert werden.  
{{Hinweis|Mit ''vmware'' lässt sich bei einer Linux-LIVE CD eine höhere bzw. die native Bildschirmauflösung benutzen.}}
{{Hinweis|Mit ''vmware'' lässt sich bei einer Linux-LIVE CD eine höhere bzw. die native Bildschirmauflösung benutzen.}}


Zeile 99: Zeile 118:


===VM während des Betriebes steuern===
===VM während des Betriebes steuern===
Sobald wie VM läuft, kann man mittels der Tasten ''STRG+ALT+2'' in eine Konsole wechseln, mittels der man verschiedene Aktionen an der VM durchführen kann. Eine Befehlsübersicht erhält man hier mittels:
Sobald wie VM läuft, kann man mittels der Tasten ''STRG+ALT+2'' in den QEMU-Monitor wechseln, mit dem man verschiedene Aktionen an der VM durchführen kann. Eine Befehlsübersicht erhält man hier mittels:
  help
  help
Möchte man wieder zum Fenster der laufenden VM zurückkehren, ist lediglich die Tastenfolge ''STRG+ALT+1'' erforderlich.
Möchte man wieder zum Fenster der laufenden VM zurückkehren, ist lediglich die Tastenfolge ''STRG+ALT+1'' erforderlich.
==Todo==
==Todo==


* KVM ausführlicher
* Allgemeiner auf QEMU eingehen
* qemu-kvm und unterschiede zu qemu
* QEMU-Monitor ein wenig erläutern
* Netzwerk
* aktivierung / weiterleitung von eingesteckten USB-Massenspeichern
* aktivierung / weiterleitung von eingesteckten USB-Massenspeichern



Version vom 4. April 2013, 00:53 Uhr

Dieser Artikel wurde als veraltet markiert, und sollte kontrolliert, und gegebenfalls korrigiert bzw. aktualisiert werden.


Dieser Artikel oder Artikelabschnitt ist noch nicht vollständig!


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 XEN oder KVM zu beschleunigen (falls ein Prozessor genutzt wird, der dies unterstützt).

Windows XP unter QEMU

Installation

QEMU wird mittels

$ pacman -S 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.

Unter anderem 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

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. Wieviel RAM man einstellen kann ist abhängig von

/dev/shm

, welches Teil von

tmpfs

ist. Dies bedeutet, dass

/dev/shm

standardmäßig die Hälfte des physikalischen RAM zur Verfügung hat.

In Systemen wo es noch in der

/etc/fstab

einen separaten /dev/shm Eintrag gibt, kann man diesen beliebig erweitern.

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

Damit die Änderung Wirkung zeigt sollte man

/dev/shm

neu einbinden:

$ 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 qcow2 arch.img 4G

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

qemu-img

unterstützt noch weitere Image-Formate. Näheres dazu in der Man-Page.

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-system-* -hda arch.img -cdrom arch-0.7.2-ftp.iso -boot d

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-system-* arch.img

Bzw:

$ qemu-system-* -hda arch.img

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.

Wenn man systemd nutzt muss man nichts weiter beachten, ansonsten müssen die Kernelmodule kvm und je nach Prozessortyp kvm-intel oder kvm-amd manuell geladen werden. Systemd lädt die entsprechenden Module nach.

$ modprobe kvm kvm-intel kvm-amd

Dieser Artikel wurde als veraltet markiert, und sollte kontrolliert, und gegebenfalls korrigiert bzw. aktualisiert werden.


Bin mir aktuell nicht sicher, ob das auf systemd-Systemen noch nötig ist.

Hinweis: Der Benutzer muss Mitglied der Gruppe kvm sein.

KVM wird entweder mit der Option -enable-kvm aktiviert oder mit -machine type=pc,accel=kvm.

QEMU mit KVM benutzen

Mit QEMU 1.3 wurde der Fork QEMU-KVM wieder aufgenommen, wodurch QEMU-KVM als separates Paket wegfällt.

Nachdem die passenden Kernelmodule geladen wurden, lässt sich die VM einfach per

 $ qemu-system-* -enable-kvm
 $ qemu-system-* -machine type=pc,accel=kvm

mit den passenden Parametern starten.

ein Beispiel für das Laden eines Fedora-LIVE-Systems:

$ qemu-system-x86_64 -enable-kvm -m 1024 -cdrom Downloads/Fedora-13-x86_64-Live.iso -boot d

Dies startet die VM mit einem zugeteilten Arbeitsspeicher von 1024 MB und dem CD-Image der Fedora-LIVE-CD als eingebundenes CD-ROM Laufwerk. Von letzterem wird hier mit der Option -boot d gestartet.


einige zusätzliche Parameter sind z.B.:

-m X

X ist die Menge des Arbeitsspeichers mit dem die VM arbeiten darf.

-smp n

n gibt die Anzahl der für die VM benutzbaren CPU-Kerne an.

-hda FILE

Die angegebene Datei wird als erste Festplatte / Partition benutzt. Weitere Platten werden mit -hdb, -hdc, etc eingebunden

-vga TYP

Standard ist die Emulation von cirrus, möglich sind noch: std, vmware, none und qxl. Letzteres sollte mit dem spice-Protokoll genutzt werden, was standardmäßig nicht eingebaut ist. Die entsprechenden Grafiktreiber sollten unter Umständen im Gast-System installiert werden.

Hinweis: Mit vmware lässt sich bei einer Linux-LIVE CD eine höhere bzw. die native Bildschirmauflösung benutzen.

-full-screen

Startet die VM im Vollbild.

Hinweis: Mit der Tastenkombination STRG+ALT+F lässt sich zwischen Vollbild- und Fenstermodus wechseln.

VM während des Betriebes steuern

Sobald wie VM läuft, kann man mittels der Tasten STRG+ALT+2 in den QEMU-Monitor wechseln, mit dem man verschiedene Aktionen an der VM durchführen kann. Eine Befehlsübersicht erhält man hier mittels:

help

Möchte man wieder zum Fenster der laufenden VM zurückkehren, ist lediglich die Tastenfolge STRG+ALT+1 erforderlich.

Todo

  • Allgemeiner auf QEMU eingehen
  • QEMU-Monitor ein wenig erläutern
  • Netzwerk
  • aktivierung / weiterleitung von eingesteckten USB-Massenspeichern

Weblinks