qemu, kvm, xen & libvirtHauptseite | Über | Hilfe | FAQ | Spezialseiten | Anmelden

Druckversion | Impressum | Datenschutz

Optionen von QEMU, KVM Best Practices, Virtualisierungslösungen für den Enterprise-Bereich

(Link zu dieser Seite als [[QEMU-KVM-Buch/ Anhang/ Startoptionen von QEMU und KVM]])

<<<|###| >>> | English


Inhaltsverzeichnis

[bearbeiten] QEMU-Optionen

Zur Unterstützung von Gast-Systemen mit x86-Prozessor-Architektur wird QEMU mit folgenden Befehlen aufgerufen. disk_image bezeichnet das Image der ersten IDE-Festplatte (disk 0).

x86-Architektur (32 Bit):

Host ~$ qemu-system-i386       [options] [disk_image]

x86-Architektur (64 Bit):

Host ~$ qemu-system-x86_64     [options] [disk_image]

QEMU wurde vor der Version 1.0 mit qemu aufgerufen.

Host ~$ qemu                   [options] [disk_image]

Die Kernel-based Virtual Machine wird oft statt mit qemu mit dem Befehl kvm aufgerufen. Dies ist verwirrend, da das Native Linux KVM Tool ebenso aufgerufen wird. Bei einigen Distributionen erfolgt der Aufruf mit qemu-system-x86_64 oder qemu-kvm.

[bearbeiten] Standard-Optionen

-h, --help

Es wird eine Hilfestellung angezeigt und danach das Programm beendet.

-version

Es wird die Version angezeigt und danach das Programm beendet.

-machine [type=]name[,prop=value[,...]]  (ab QEMU 0.15)

Auswahl der emulierten Maschine. Wird diese Option weggelassen oder die Default-Option -machine type=pc angegeben, wird ein heutiger Standard-PC mit PCI-Bus emuliert. Mit -machine type=pc-0.11 wird der Maschinen-Typ pc der QEMU-Version 0.11.0 vorgegeben. Mit der Option -machine type=isapc wird ein PC-Modell mit dem älteren ISA-Bus (Industry Standard Architecture) emuliert. Die Anzeige der möglichen Maschinen-Typen erfolgt mit -machine ?. Als Properties (prop) ist accel zur Vorgabe des Beschleunigers einsetzbar.

     accel=accels1[:accels2[:...]]
In Abhängigkeit von der Architektur stehen kvm, xen, oder tcg zur Verfügung. Werden mehrere Beschleuniger vorgegeben, werden diese nacheinander auf Verwendbarkeit geprüft.
-M machine  (bis QEMU 0.14) 

Auswahl der emulierten Maschine. Wird diese Option weggelassen oder die Default-Option -M pc angegeben, wird ein heutiger Standard-PC mit PCI-Bus emuliert. Mit -M pc-0.11 wird der Maschinen-Typ pc der QEMU-Version 0.11.0 vorgegeben. Mit der Option -M isapc wird ein PC-Modell mit dem älteren ISA-Bus (Industry Standard Architecture) emuliert. Die Anzeige der möglichen Maschinen-Typen erfolgt mit -M ?.

-cpu model

Auswahl der emulierten CPU. Die Anzeige der möglichen CPU-Typen erfolgt mit -cpu ?. Zusätzliche CPU-Definitionen können dem CPU-Typ nach einem Komma übergeben werden, zum Beispiel -cpu qemu64,+svm. Mit der Default-Definition +svm werden Prozessoren mit Hardware-Virtualisierungstechniken emuliert. Das heißt, das Gast-System kann als Host-System für weitere KVM-Instanzen dienen. Verfügt das eigentliche Host-System über AMD-Prozessoren und wurde das Kernel-Modul kvm-amd mit der Option nested=1 aktiviert (siehe http://qemu-buch.de/d/Installation), so ist auch die Option -enable-kvm anwendbar. Wird eine Virtualisierungslösung innerhalb einer anderen Virtualisierungslösung betrieben, so nennt man dies Nesting.

     -cpu qemu64,-svm
Mit der CPU-Definition -svm werden Prozessoren ohne Hardware-Virtualisierungstechniken emuliert.
-smp n[,maxcpus=maxcpus][,cores=cores][,threads=threads][,sockets=sockets]

Legt die Anzahl (n) der emulierten CPUs fest. Per Default wird eine CPU emuliert. Bis zu 255 CPUs werden für die x86-Architektur unterstützt. Für die Sparc32-Architektur begrenzt Linux als Host-System die Anzahl auf vier CPUs. Für x86-Architekturen stehen diese Optionen zur Verfügung. Fehlende Angaben werden berechnet. Werden Werte für cores, threads und sockets vorgegeben, kann die Gesamtzahl der CPUs weggelassen werden.

     maxcpus=maxcpus
Definiert die maximale Anzahl von Hot-Plug-CPUs. Dazu gehören auch die CPUs, die offline sind.
     cores=cores
Definiert die Anzahl der Cores pro Socket.
     threads=threads
Definiert die Anzahl der Threads pro Core.
     sockets=sockets
Definiert die Anzahl der Sockets.
-numa node[,mem=size][,cpus=cpu[-cpu]][,nodeid=node]

Simuliert ein Multi-Node-NUMA-System. NUMA (Non-Uniform Memory Architecture) ist eine Speicher-Architektur für Multiprozessorsysteme. Jeder Prozessor besitzt einen separaten, lokalen Speicher. Anderen Prozessoren des Systems wird über einen gemeinsamen Adressraum ein direkter Zugriff auf diesen Speicher ermöglicht (Distributed Shared Memory). NUMA-Architekturen sind beispielsweise in AMD-Mehrprozessorsystemen auf Opteron-Basis implementiert. Vereinfacht gesagt ist ein NUMA-Node ein Speicherbereich, in welchem jedes Byte den gleichen Abstand (Hops) zu jeder CPU hat (siehe http://lse.sourceforge.net/numa/faq/). Im QEMU-Monitor informiert der Befehl info numa über den NUMA-Node.

     mem=size
Definiert die Größe des Speichers. Der Default-Wert ist 128 MByte. Wird diese Option nicht angegeben, werden die Ressourcen gleichmäßig aufgeteilt.
     cpus=cpu[-cpu]
Adressiert die CPU(s) für die Konfiguration. Wird diese Option nicht angegeben, werden die Ressourcen gleichmäßig aufgeteilt.
     nodeid=node
Definiert die Node-ID.
-fda/-fdb file

Die angegebene Datei file dient als Disketten-Image für Laufwerk A beziehungsweise B. Unter Linux kann auch die Gerätedatei /dev/fd0 für file verwendet werden.

-hda file
-hdb file
-hdc file 
-hdd file

Die angegebene Datei file wird jeweils als Festplatten-Image verwendet. Es ist auch möglich reale Festplatten einzubinden. Allerdings sollte der Zugriff schreibgeschützt (-snapshot) erfolgen. Ansonsten droht Datenverlust. Unter Linux werden dazu die Devices, zum Beispiel /dev/hda oder /dev/sda, angegeben. Unter Microsoft Windows wird auf ein reales Laufwerk mit \\.\PhysicalDriveN zugegriffen. Wobei N die Laufwerksnummer ist (0 ist das erste Laufwerk).

-cdrom file

Die angegebene Datei file dient als Image für das CD-ROM-Laufwerk (IDE1-Master). Es ist nicht möglich -hdc und -cdrom gleichzeitig zu nutzen. Unter Linux und MacOS X kann auch das reale CD-ROM-Laufwerk, zum Beispiel /dev/cdrom, für file verwendet werden. Unter Microsoft Windows wird auf das reale CD-ROM-Laufwerk mit \\.\d\: zugegriffen.

-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i]    \
     [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off]            \
     [,cache=writethrough|writeback|none|directsync|unsafe]          \
     [,format=f][,serial=s][,addr=A][,id=name][,aio=threads|native]  \
     [,werror=action[,rerror=action][,readonly=on|off]

Definiert den Host-Teil eines Block-Device. Mögliche Optionen sind:

     file=file
Diese Option adressiert das Image für dieses Laufwerk. Enthält der Dateiname ein Komma, so ist dieses zu verdoppeln. Spezial-Dateien, wie iSCSI-Devices, werden mit URLs entsprechend des Protokolls definiert.
     if=type
Diese Option definiert mit welcher Art Interface das Laufwerk verbunden ist. Möglich sind: ide, scsi, sd (Secure-Digital-Card), mtd (On-Board-Flash-Memory), floppy, pflash (Parallel-Flash), virtio (Paravirtualisierte Block-Device).
     bus=n,unit=m
Diese Optionen definieren durch die Angabe der Bus-Nummer und der Unit-ID wie das Laufwerk verbunden ist. Diese Angaben sind optional.
     index=i
Als Alternative zu bus und unit kann das einfachere index verwendet werden. Diese Option definiert an welchen Connector eines Interfaces das Laufwerk angeschlossen ist. Mit index wird die Nummer des Connectors angegeben. Bei mehreren Laufwerken wird jeweils durch eine fortlaufende Zahl die Reihenfolge festgelegt. index, bus und unit sind optional. QEMU versucht standardmäßig den ersten freien Anschluss zu finden.
     media=d
Diese Option definiert den Media-Typ (disk oder cdrom).
     cyls=c,heads=h,secs=s[,trans=t]
Diese Optionen haben die gleichen Bedeutungen wie bei -hdachs.
     snapshot=on|off
Die Option kann off oder on gesetzt werden und erlaubt die (De-)Aktivierung der Snapshot-Funktion für das angegebene Laufwerk (siehe Option -snapshot).
     cache=writethrough|writeback|none|directsync|unsafe
Die Option cache kann auf writethrough (Default), writeback, none, directsync oder unsafe gesetzt werden. Sie steuert die Nutzung des Cache für das angegebene Laufwerk. Mit dem Setzten des Parameters writethrough wird der Host-Cache für Lese- und Schreibzugriffe verwendet. Die Bestätigung des Schreibvorganges wird dem Gast-System erst gesendet, wenn das Storage-Subsystem den Schreibvorgang bestätigt hat. Bei der Option writeback wird bereits die Schreibbestätigung gesendet, wenn die Daten im Cache des Hosts gespeichert sind. Stürzt der Host ab, kann es zu Datenverlusten kommen. directsync entspricht writethrough mit dem Unterschied, dass der Host-Page-Cache vermieden wird. Schreibbestätigungen werden direkt zum Gast-System gesendet. Mit unsafe wird der Cache-Inhalt nie auf die Festplatte geschrieben. Bei Problemen mit dem Host droht dabei Datenverlust. Bei der Startoption -snapshot wird unsafe als Default eingestellt. Bei der Option none wird der Host-Cache nicht verwendet. QEMU kann intern die Daten cachen. Die Performance kann bei bestimmten Treibern in Kombination mit der Option writethrough und dem Image-Format qcow2 geringer sein. Wird mehr Wert auf Geschwindigkeit als auf Sicherheit gelegt, ist hier die Option writeback anzuwenden.
     format=f
Gibt das Image-Format vor (Beispiel format=raw).
     serial=s
Definiert die Nummer für die Zuweisung des Device.
     addr=A
Definiert die PCI-Device-Address des Controllers (virtio).
     boot=on|off
Wird die Option boot=on gesetzt, wird das Booten von dem Laufwerk ermöglicht.
     aio=threads|native
Ermöglicht die Wahl zwischen Pthread Based Disk I/O und Native Linux AIO.
     werror=action,rerror=action
Definiert die Aktion bei Schreib- oder Lesefehlern. Bei ignore wird der Fehler ignoriert und es wird versucht weiterzumachen. Die Aktion stop beendet QEMU bei einem Fehler. Bei report wird der Fehler dem Gast-System mitgeteilt. Die Aktion enospc beendet QEMU nur wenn das Host-System keinen Speicherplatz mehr zur Verfügung stellen kann. Ansonsten wird der Fehler dem Gast-System mitgeteilt. Die Default-Einstellungen sind: werror=enospc und rerror=report.
     readonly=on|off
Mit readonly=on wird das Laufwerk mit einem Schreibschutz versehen.
-set group.id.arg=value

Definiert den Parameter arg für den Eintrag id vom Typ group. Zum Beispiel:
-set drive.$id.file=/path/to/image

-global driver.property=value

Definiert ein globalen Default-Wert für eine Treiber-Eigenschaft.

-mtdblock file

Die angegebene Datei file dient als On-Board-Flash-Memory-Image.

-sd file

Die angegebene Datei file dient als Secure-Digital-Card-Image.

-pflash file

Die angegebene Datei file dient als Parallel-Flash-Image.

-boot [order=drives][,once=drives][,menu=on|off] \
      [,splash=sp_name][,splash-time=sp_time]

Diese Option definiert von welchen Device beziehungsweise Image das Betriebssystem gestartet wird (x86-PC). Das ursprüngliche Format -boot drives wird in zukünftigen QEMU-Versionen nicht mehr unterstützt.

     a
Diskette
     c
Festplatte (Default)
     d
CD/DVD-ROM
     n
Etherboot (1. Netzwerkkarte)
     o
Etherboot (2. Netzwerkkarte)
     p
Etherboot (3. Netzwerkkarte)
     order=drives
Definiert die Boot-Reihenfolge. Mit der Option -boot order=adc wird erst versucht von der Diskette zu booten. Ist dies nicht möglich, wird versucht von CD/DVD-ROM zu booten. Schlägt aus dies fehl, wird der Boot-Vorgang von der Festplatte gestartet.
     once=drives
Es wird nur beim ersten Start versucht von diesem Device zu booten.
     menu=on|off
(De-)Aktiviert ein Menü zur Auswahl des Boot-Devices. Dieses Menü wird in der startenden Instanz mit der Taste [F12] aufgerufen.
     splash=sp_name
Während des Bootens kann eine Grafik als Splash-Logo angezeigt werden. Dazu ist mit der Option splash der Pfad zu der Grafik-Datei anzugeben und menu=on zu setzen. Außerdem muss die Bios-Firmeware das Anzeigen von Splash-Logos unterstützen. Derzeit ist Seabios für x86-Systeme dazu in der Lage. Die Grafik-Datei muss entweder im Format JPG oder BMP mit einer Farbtiefe von 24 BPP (True Color) vorliegen. Die Auflösung muss durch den SVGA-Modus unterstützt werden. Empfohlen wird 320x240, 640x480 und 800x640.
     splash-time=sp_time
Mit splash-time wird die Anzeigedauer des Splash-Logos in ms definiert.
-snapshot 

Änderungen werden nicht auf die Speichermedien geschrieben, sondern in temporäre Dateien. Mit dem Befehl savevm im QEMU-Monitor können diese Änderungen gespeichert werden.

-m megs[M|G]

Definiert die Größe des Arbeitsspeichers in MByte (megs). Der Defaultwert ist 128 MByte. Optional kann mit M oder G die Größe in MByte beziehungsweise GByte angegeben werden.

-mem-path file

Liefert Backing-Storage für den Arbeitsspeicher des Gast-Systems. Mit dieser Option aktiviert man HugeTLBfs für die virtuelle Maschine. Diese größeren Speicherseiten verbessern die Performance (siehe http://www.linux-kvm.com/content/get-performance-boost-backing-your-kvm-guest-hugetlbfs). Hat das Host-System einen Linux-Kernel ab Version 2.6.38, ist diese Optimierung nicht mehr notwendig. Die Optimierung erfolgt dann mit den Transparent Huge Pages.

-mem-prealloc

Reserviert Arbeitsspeicher für das Gast-System. Diese Option ist zusammen mit -mempath zu verwenden.

-k language

Legt das Tastatur-Layout fest. Die Vorgabe des Tastatur-Layouts ist normalerweise nicht erforderlich, da es vom Host-System übernommen wird. Ist dies nicht möglich, wie bei einigen X-Servern oder bei VNC, ist die Einstellung des Layouts mit dieser Option vorzunehmen. In diesen Fällen gilt sonst en-us als Standard.


Kürzel Sprache
ar arabisch
da dänisch
de deutsch
de-ch deutsch (Schweiz)
en-gb englisch (Großbritannien)
en-us englisch (USA)
es spanisch
et estnisch
fi finnisch
fo färöisch
fr französisch
fr-be französisch (Belgien)
fr-ca französisch (Kanada)
fr-ch französisch (Schweiz)
hr kroatisch
hu ungarisch
is isländisch
it italienisch
ja japanisch
lt litauisch
lv lettisch
mk mazedonisch
nl holländisch
nl-be holländisch (Belgien)
no norwegisch
pl polnisch
pt portugiesisch
pt-br portugiesisch (Brasilien)
ru russisch
sl slowenisch
sv schwedisch
th thailändisch
tr türkisch
-audio-help

Gibt die Liste der Audio-Devices mit deren Optionen aus.

-soundhw card1[,card2,...] 
-soundhw all 

Aktiviert die Audiounterstützung für die angegebenen Soundkarten. Es können mehrere Soundkarten getrennt durch Kommas angegeben werden.

     -soundhw ?
Anzeige der unterstützten Soundkarten.
     -soundhw pcspk
Emuliert den PC-Lautsprecher.
     -soundhw sb16
Emuliert die Soundkarte Creative Sound Blaster 16.
     -soundhw es1370
Emuliert die Soundkarte ENSONIQ AudioPCI ES1370.
     -soundhw ac97
Emuliert die Soundkarte Intel 82801AA AC97 Audio. Im Linux-Gast-System erfordert das Kernel-Modul i810_audio für AC97 die folgende Option: modprobe i810_audio clocking=48000
     -soundhw pcspk,sb16
Emuliert den PC-Lautsprecher und die Creative Sound Blaster 16.
     -soundhw all
Aktiviert alle unterstützten Soundkarten.
-device driver[,prop[=value][,...]]

Definiert den Gast-Teil eines Device. Mit -device ? erhält man eine Liste möglicher Devices.

     prop=value
Definiert die Eigenschaften des Devices. Mit -device driver,? erhält man eine Liste möglicher Eigenschaften für das angegebene Device.
-name string1[,process=string2]

Definiert einen Namen für die Instanz. Dieser Name wird in der Titelzeile des SDL-Fensters angezeigt. Weiterhin wird dieser Name für den VNC-Server verwendet. Mit string2 wird unter Linux der Prozess-Name für das Programm top festgelegt.

-uuid %08x-%04x-%04x-%04x-%012x

Definiert einen UUID (Universally Unique Identifier) für die Instanz.

[bearbeiten] USB-Optionen

QEMU emuliert einen PCI UHCI USB-Controller. Damit lassen sich virtuelle USB-Devices und reale USB-Devices des Host-Systems (nur Linux) mit der virtuellen Maschine verbinden. QEMU legt automatisch bei Bedarf virtuelle USB-Hubs an.

-usb

Aktiviert die USB-Unterstützung.

-usbdevice name

Fügt ein USB-Device hinzu. Alternativ wird im QEMU-Monitor der Befehl usb_add verwendet. Mögliche USB-Devices sind:

     mouse
Diese Option aktiviert eine virtuelle USB-Maus und überschreibt die PS/2-Maus-Emulation.
     tablet
Mit dieser Option wird der Maus-Zeiger sowohl im Gast- als auch im Host-System genutzt. Verlässt der Maus-Zeiger das Fenster des Gast-Systems, wird automatisch auf den Zeiger des Host-Systems umgeschaltet. Diese Option überschreibt die PS/2-Maus-Emulation.
     disk:[format=format]:file
Mit dieser Option wird ein Massenspeicher (virtueller USB-Stick) emuliert. file bezeichnet das Image des Massenspeichers. format gibt das Image-Format vor (Beispiel format=raw).
     host:bus.addr
Mit dieser Option wird ein USB-Device des Host-Systems durch seine Busadresse direkt angesprochen. Dies ist nur unter Linux möglich und noch im experimentellen Stadium.
     host:vendor_id:product_id
Mit dieser Option wird ein USB-Device des Host-Systems durch seine Vendor- und Produkt-ID direkt angesprochen. Dies ist nur unter Linux möglich und noch experimentell.
     wacom-tablet
Emuliert ein virtuelles Wacom-PenPartner-Tablet. Zusätzlich zu den Möglichkeiten der Option tablet kann der Druck auf das Zeigegerät ausgewertet werden. Voraussetzung dafür ist die TSLIB-Bibliothek.
     keyboard
Diese Option aktiviert eine virtuelle USB-Tastatur und überschreibt die vorhandene PS/2-Tastatur-Emulation.
     serial:[vendorid=vendor_id][,productid=product_id]:dev
Aktiviert einen virtuellen Seriell-Konverter zum angegebenen Charakter-Device dev des Host-Systems. Emuliert wird der Chip FTDI FT232BM. Die Angabe Vendor-ID und Produkt-ID überschreibt die Default-Werte von 0403:6001.
     braille
Aktiviert das Braille-Device. Dieses verwendet die BrlAPI zur Anzeige der Braille-Ausgabe für Sehbehinderte oder ein Fake-Device.
     net:options
Aktiviert einen virtuellen Netzwerk-Adapter, der die Protokolle CDC-Ethernet und RNDIS unterstützt. Die Optionen options entsprechen den Optionen von -net nic. Zum Beispiel wird ein User-Mode-Network-Stack mit USB mit folgenden Befehl generiert: qemu [...OPTIONS...] -net user,vlan=0 -usbdevice net:vlan=0
     bt[:hci-type]
Aktiviert einen Bluetooth-Dongle. Die möglichen Parameter von hci-type entsprechen denen von -bt hci (siehe Bluetooth-Optionen). Wird hci-type nicht angegeben, gilt die Default-Einstellung -bt hci,vlan=0. Dieses USB-Device implementiert den USB Transport Layer von HCI.

[bearbeiten] Dateisystem-Optionen

Ab QEMU 0.13 werden die Optionen -fsdev und -virtfs unterstützt.

[bearbeiten] Dateisystem-Devices

Die allgemeine Syntax zur Definition von Dateisystem-Devices ist -fsdev fsdriver,id=id [,options]. Jedem Device muss mit id eine Zeichenkette zugeordnet werden. Diese dient zur eindeutigen Identifizierung. Je nach Art des Devices (fsdriver) sind bestimmte Optionen anzuwenden.

-fsdev fsdriver,id=id,path=path                 \
     [,security_model=mapped|passthrough|none]  \
     [,writeout=immediate][,readonly]
     fsdriver
Mit dieser Option wird der Datei-System-Treiber des Backends spezifiziert. Derzeit werden local und handle unterstützt.
     path
Definiert den zu exportierenden Pfad. Diese Angabe ist zwingend.
     security_model=[mapped|passthrough|none]
Definiert das zu verwendende Sicherheitsmodell. Diese Angabe ist zwingend bei dem Datei-System-Treiber local. Andere Datei-System-Treiber, wie zum Beispiel handle, unterstützen diesen Parameter nicht.
     security_model=mapped
Der VirtFS-Server (QEMU) fängt alle Anfragen zum Anlegen von Datei-Objekten ab und generiert die Dateien auf dem File-Server mit den Rechten des QEMU-Benutzers. Die Rechte des Clients werden stattdessen in erweiterte Attribute gespeichert. Mit getattr() extrahiert der Server die Datei-Rechte des Clients und sendet diese zum Client. Da nur die erweiterten Attribute im User Space für reguläre Dateien verfügbar sind, werden Special-Dateien als reguläre Dateien auf dem File-Server abgelegt. Die entsprechenden Mode-Bits werden als xattrs gespeichert und mit getattr wieder extrahiert. Wenn die erweiterten Attribute fehlen, sendet der Server unverändert das stat() des Datei-Systems. Damit werden die Rechte der Dateien für den Client bestimmt. Dabei ist folgendes zu beachten: Das Datei-System wird entsprechend VirtFS verwendet. Andere Datei-Systeme verstehen möglicherweise diese Datei-Rechte nicht. Geläufige Werkzeuge, wie zum Beispiel df, geben falsche Informationen aus. Notwendig sind spezielle Werkzeuge, die dieses Sicherheits-Modell verstehen.
     security_model=passthrough
In diesem Sicherheits-Modell reicht der VirtFS-Server alle Anfragen zum Anlegen von Datei-Objekten an das darunterliegende Datei-System weiter. Die Dateien werden mit den Anmeldeinformationen des Clients angelegt. Dies erfolgt mit setuid()/setgid() während des Anlegens der Datei. Als Resultat erhalten diese Dateien die UID/GID des Clients. Dabei ist folgendes zu beachten: Der File-Server muss unter dem Benutzer root laufen. Root Squashing kann erforderlich sein. Dies wird in Zukunft realisiert. Es sind Konflikte zwischen den User Space IDs des Gastes und den User Space IDs des Hosts möglich. Weiterhin werden Attribute des Sicherheits-Modell zum -fsdev device und zum -virtfs shortcut hinzugefügt.
     writeout=immediate
Dieses optionale Argument unterstützt nur den Wert immediate. Dabei wird der Host-Page-Cache für Schreib- und Lesevorgänge verwendet. Die Schreibbestätigungen werden aber nur zum Gast-System gesendet, wenn das Storage-Subsystem den Schreibvorgang erfolgreich bestätigt haben.
     readonly
Der 9P-Share-Folder wird für das Gast-System schreibgeschützt exportiert.

Die Option -fsdev wird zusammen mit der Option -device virtio-9p-pci verwendet.

-device virtio-9p-pci,fsdev=id,mount_tag=mount_tag
     fsdev=id
Die hiermit definierte ID muss gleich der mit -fsdev definierten ID sein.
     mount_tag=mount_tag
Definiert den Tag-Name. Dieser wird im Gast-System beim Einbinden dieses Shared-Folder angegeben.

[bearbeiten] Virtuell exportierte Dateisysteme

Die allgemeine Syntax zum Exportieren von Dateisystemen als virtuelle Dateisysteme ist -virtfs fsdriver[,options]. Je nach Art des Devices (fsdriver) sind bestimmte Optionen anzuwenden.

-virtfs fsdriver,path=path,mount_tag=mount_tag   \
     [,security_model=mapped|passthrough|none]   \
     [,writeout=immediate][,readonly]
     fsdriver
Mit dieser Option wird der Datei-System-Treiber des Backends spezifiziert. Derzeit werden local und handle unterstützt.
     path
Definiert den zu exportierenden Pfad. Diese Angabe ist zwingend.
     security_model=[mapped|passthrough|none]
Definiert das zu verwendende Sicherheitsmodell. Diese Angabe ist zwingend bei dem Datei-System-Treiber local. Andere Datei-System-Treiber, wie zum Beispiel handle, unterstützen diesen Parameter nicht.
     security_model=mapped
Der VirtFS-Server (QEMU) fängt alle Anfragen zum Anlegen von Datei-Objekten ab und generiert die Dateien auf dem File-Server mit den Rechten des QEMU-Benutzers. Die Rechte des Clients werden stattdessen in erweiterte Attribute gespeichert. Mit getattr() extrahiert der Server die Datei-Rechte des Clients und sendet diese zum Client. Da nur die erweiterten Attribute im User Space für reguläre Dateien verfügbar sind, werden Special-Dateien als reguläre Dateien auf dem File-Server abgelegt. Die entsprechenden Mode-Bits werden als xattrs gespeichert und mit getattr wieder extrahiert. Wenn die erweiterten Attribute fehlen, sendet der Server unverändert das stat() des Datei-Systems. Damit werden die Rechte der Dateien für den Client bestimmt. Dabei ist folgendes zu beachten: Das Datei-System wird entsprechend VirtFS verwendet. Andere Datei-Systeme verstehen möglicherweise diese Datei-Rechte nicht. Geläufige Werkzeuge, wie zum Beispiel df, geben falsche Informationen aus. Notwendig sind spezielle Werkzeuge, die dieses Sicherheits-Modell verstehen.
     security_model=passthrough
In diesem Sicherheits-Modell reicht der VirtFS-Server alle Anfragen zum Anlegen von Datei-Objekten an das darunterliegende Datei-System weiter. Die Dateien werden mit den Anmeldeinformationen des Clients angelegt. Dies erfolgt mit setuid()/setgid() während des Anlegens der Datei. Als Resultat erhalten diese Dateien die UID/GID des Clients. Dabei ist folgendes zu beachten: Der File-Server muss unter dem Benutzer root laufen. Root Squashing kann erforderlich sein. Dies wird in Zukunft realisiert. Es sind Konflikte zwischen den User Space IDs des Gastes und den User Space IDs des Hosts möglich. Weiterhin werden Attribute des Sicherheits-Modell zum -fsdev device und zum -virtfs shortcut hinzugefügt.
     writeout=immediate
Dieses optionale Argument unterstützt nur den Wert immediate. Dabei wird der Host-Page-Cache für Schreib- und Lesevorgänge verwendet. Die Schreibbestätigungen werden aber nur zum Gast-System gesendet, wenn das Storage-Subsystem den Schreibvorgang erfolgreich bestätigt haben.
     readonly
Der 9P-Share-Folder wird für das Gast-System schreibgeschützt exportiert.
-virtfs_synth 

Generiert ein synthetisches Datei-System-Image mit dem Mount-Tag v_synth.

[bearbeiten] Display-Optionen

-display sdl[,frame=on|off][,alt_grab=on|off] \     (ab QEMU 0.15)
    [,ctrl_grab=on|off][,window_close=on|off]

Aktiviert den Simple DirectMedia Layer (SDL) für die VGA-Ausgabe. Diese Option ist zusammen mit der Option -vnc sinnvoll. Diese Option ersetzt die Optionen -sdl, -no-frame, -alt-grab, -ctrl-grab und -no-quit.

     frame=on|off
frame=off deaktiviert den Fenster-Rahmen der Instanz und stellt damit den vollen Bildschirmbereich für das Gast-System zur Verfügung.
     alt_grab=on|off
Bei alt_grab=on wird die Tastenkombination [Strg]+[Alt]+[Shift] statt [Strg]+[Alt] zur Freigabe der Maus verwendet.
     ctrl_grab=on|off
Bei ctrl_grab=on wird die rechte [Strg]-Taste statt [Strg]+[Alt] zur Freigabe der Maus verwendet.
     window_close=on|off
window_close=off deaktiviert den Button zum Schließen des Fensters der Instanz.
-display curses                                     (ab QEMU 0.15)

Normalerweise wird der Simple DirectMedia Layer (SDL) für die VGA-Ausgabe verwendet. Diese Option ermöglicht dagegen beim Textmodus die VGA-Ausgabe des Gast-Systems über das Curses/Ncurses-Interface. Im grafischen Modus erfolgt bei dieser Option keine Ausgabe. Diese Option ersetzt die Option -curses.

-display none                                       (ab QEMU 0.15)

Deaktiviert die grafische Ausgabe. Für das Gast-System wird aber weiterhin eine Grafik-Karte emuliert. Im Unterschied zur Option -nographic werden dabei die serielle und parallele Ein- und Ausgabe nicht umgeleitet.

-display vnc=display[,optargs]              (ab QEMU 0.15)

Startet die Instanz mit einem VNC-Server auf der Display-Nummer display. Diese Option ersetzt die Option -vnc. Normalerweise wird für die VGA-Ausgabe das Simple DirectMedia Layer (SDL) genutzt. Mit der Option -vnc ist es dagegen möglich, die Ausgabe über eine VNC-Session umzuleiten. Nützlich ist es dabei die Option -usbdevice tablet anzuwenden. Weiterhin kann das Tastatur-Layout mit der Option -k angegeben werden. Für display ist folgende Syntax möglich:

     host:d
TCP-Verbindungen werden nur vom Host auf Display d erlaubt. Der TCP-Port ist 5900+d. Der Parameter host kann weggelassen werden, wenn der Server sich zu allen Interfaces verbinden soll.
     unix:path
Die Verbindung wird durch ein UNIX-Domain-Socket ermöglicht. Der Parameter path definiert den Pfad zu dem Socket.
     none
VNC wird zwar initialisiert aber nicht gestartet. Im QEMU-Monitor wird VNC mit dem Befehl change vnc gestartet.

Folgende Optionen werden für optargs angegeben. Mehrere Optionen trennt man jeweils mit einem Komma.

     reverse
Die Verbindung zu dem VNC-Client ist Reverse. Bei einer Netzwerk-Verbindung ist d eine TCP-Port-Nummer und keine Display-Nummer.
     password
Erfordert für die Verbindung zum Client eine Passwort-Authentifizierung. Das Passwort muss im QEMU-Monitor mit dem Befehl change vnc password gesetzt werden.
     tls
Zur Erhöhung der Sicherheit wird für die Verbindung vom Client zum Server die anonymous Transport Layer Security (TLS) genutzt. Diese Option sollte mit der Option x509 oder x509verify kombiniert werden.
     x509=/path/to/certificate/dir
Diese Option ist zusammen mit der Option tls anzuwenden und erfordert ein x509-Zertifikat zum abgesicherten Verbindungsaufbau. Der Server sendet dabei sein x509-Zertifikat zum Client. Die Festlegung eines Passwortes ist zu empfehlen. Nach dem Gleichheitszeichen wird der Pfad zu der Zertifikatsdatei angegeben.
     x509verify=/path/to/certificate/dir
Diese Option ist zusammen mit der Option tls anzuwenden und erfordert x509-Zertifikate zum abgesicherten Verbindungsaufbau. Der Server sendet dabei sein x509-Zertifikat zum Client und fordert vom Client dessen x509-Zertifikat an. Anschließend überprüft der Server das Zertifikat des Clients gegen das CA-Zertifikat. Nach dem Gleichheitszeichen wird der Pfad zu der Zertifikatsdatei angegeben. Die Festlegung eines Passwortes ist zu empfehlen.
     sasl
Die Option erfordert die Verwendung des Simple Authentication and Security Layer (SASL) zur Authentifikation des VNC-Clients gegenüber dem VNC-Server. Das Framework SASL bietet dem Applikationsprotokoll eine standardisierte Möglichkeit der Aushandlung von Kommunikationsparametern zwischen Server und Client. Es können unter anderem die Authentifizierungsmethoden PAM, GSSAPI/Kerberos, LDAP, SQL-Datenbank und Einmal-Keys angewendet werden. Durch die Konfiguration der jeweiligen SASL-Implementierungen wird ein Verfahren festgelegt. Wurde QEMU mit der Unterstützung für SASL kompiliert, erfolgt dies durch die SASL-Konfigurationsdatei /etc/sasl2/qemu.conf. Alternativ wird auf eine andere Konfigurationsdatei mit der Variable SASL_CONF_PATH verwiesen. Es ist zu empfehlen, dass SASL immer zusammen mit TSL und x509 verwendet wird. Beispiel:
qemu [...OPTIONS...] -vnc :1,sasl -monitor stdio
     acl
Wurde QEMU mit der Unterstützung für ACL kompiliert, aktiviert diese Option die Zugriffskontrolle des x509-Client-Zertifikates und des SASL gegen eine Zugriffssteuerungsliste (Access Control List). Bei x509-Client-Zertifikaten wird der Distinguished Name getestet. Dieser hat zum Beispiel die Form C=DE,O=BLA,L=Berlin,CN=robert. Bei SASL wird der Benutzername überprüft. Je nach verwendeten SASL-Plugin wird der Benutzername beispielsweise in den Formen robert oder robert@beispiel.de angegeben. Wenn der acl-Flag gesetzt wird, ist die initiale Zugriffssteuerungsliste leer und verfügt nur über die Deny-Policy. Dadurch wird verhindert, dass jemand unerlaubten Zugriff erhält, solange der VNC-Server noch keine ACL geladen hat. Zum Verwalten der Zugriffssteuerungsliste dienen die Befehle acl_show, acl_policy, acl_allow und acl_remove des QEMU-Monitors.
     lossy
Ermöglicht eine verlustbehaftete Kompressionsmethode (gradient, JPEG, ...). Wird diese Option aktiviert, kann es zu verlustbehafteten Aktualisierungen des Bildschirmaufbaus kommen. Es wird dabei eine wesentlich geringere Bandbreite benötigt.
-nographic

Deaktiviert die grafische Ausgabe und leitet die serielle Ein- und Ausgabe zur Konsole um. Die Steuerung kann über spezielle Tastaturkürzel erfolgen.

-curses    (Wird ersetzt durch -display curses.) 

Normalerweise wird der Simple DirectMedia Layer (SDL) für die VGA-Ausgabe verwendet. Diese Option ermöglicht beim Textmodus die VGA-Ausgabe des Gast-Systems über das Curses/Ncurses-Interface. Im grafischen Modus erfolgt bei dieser Option keine Ausgabe.

-no-frame  (Wird ersetzt durch -display sdl,options.) 

Deaktiviert den Fenster-Rahmen der Instanz und stellt damit den vollen Bildschirmbereich für das Gast-System zur Verfügung.

-alt-grab  (Wird ersetzt durch -display sdl,options.) 

Verwendet die Tastenkombination [Strg]+[Alt]+[Shift] statt [Strg]+[Alt] zur Freigabe der Maus.

-ctrl-grab (Wird ersetzt durch -display sdl,options.) 

Verwendet die rechte [Strg]-Taste statt [Strg]+[Alt] zur Freigabe der Maus.

-no-quit   (Wird ersetzt durch -display sdl,options.) 

Deaktiviert den Button zum Schließen des Fensters der Instanz.

-sdl       (Wird ersetzt durch -display sdl,options.) 

Aktiviert den Simple DirectMedia Layer (SDL) für die VGA-Ausgabe. Diese Option ist zusammen mit der Option -vnc sinnvoll.

-spice [port=port]                                                     \
     [,addr=addr]                                                      \
     [,ipv4][,ipv6]                                                    \
     [,password=secret]                                                \
     [,sasl]                                                           \
     [,disable-ticketing]                                              \
     [,disable-copy-paste]                                             \
     [,tls-port=nr]                                                    \
     [,x509-dir=dir]                                                   \
     [,x509-key-file=file]                                             \
     [,x509-key-password=secret]                                       \
     [,x509-cert-file=file]                                            \
     [,x509-cacert-file=file]                                          \
     [,x509-dh-key-file=file]                                          \
     [,tls-ciphers=list]                                               \
     [,tls-channel=[main|display|inputs|record|playback|tunnel]]       \
     [,plaintext-channel=[main|display|inputs|record|playback|tunnel]] \
     [,image-compression=[auto_glz|auto_lz|quic|glz|lz|off]]           \
     [,jpeg-wan-compression=[auto|never|always]]                       \
     [,zlib-glz-wan-compression=[auto|never|always]]                   \
     [,streaming-video=[off|all|filter]]                               \
     [,agent-mouse=[on|off]]                                           \
     [,playback-compression=[on|off]]

Die Option aktiviert den SPICE-Server.

     port=nr
Mit der Option port wird der Port vorgegeben, auf dem der SPICE-Server unverschlüsselt kommuniziert. Es ist zumindest eine der beiden Optionen port oder tls-port anzugeben.
     addr=addr
Mit der Option addr wird das Netzwerk-Interface vorgegeben, auf dem SPICE lauscht. Wird diese Option nicht angegeben, hört SPICE auf allen Interfaces des Host-Systems.
     ipv4, ipv6
Definiert das zu verwendende Protokoll: IPv4 oder Ipv6. Wird kein Protokoll definiert, wird ein beliebiges Protokoll verwendet.
     password=secret
Mit der Option password wird das Ticket-Passwort für die Client-Verbindung gesetzt. Diese Einstellung kann im QEMU-Monitor mit den Befehlen set_password und expire_password geändert werden.
     sasl
Die Option erfordert die Verwendung des Simple Authentication and Security Layer (SASL) zur Authentifikation des SPICE-Clients gegenüber dem SPICE-Server. Das Framework SASL bietet dem Applikationsprotokoll eine standardisierte Möglichkeit der Aushandlung von Kommunikationsparametern zwischen Server und Client. Es können unter anderem die Authentifizierungsmethoden PAM, GSSAPI/Kerberos, LDAP, SQL-Datenbank und Einmal-Keys angewendet werden. Durch die Konfiguration der jeweiligen SASL-Implementierungen wird ein Verfahren festgelegt. Wurde QEMU mit der Unterstützung für SASL kompiliert, erfolgt dies durch die SASL-Konfigurationsdatei /etc/sasl2/qemu.conf. Alternativ wird auf eine andere Konfigurationsdatei mit der Variable SASL_CONF_PATH verwiesen, wenn QEMU unter einem unpriviligierten Benutzer läuft. Es ist zu empfehlen, dass SASL immer zusammen mit TSL und x509 verwendet wird.
     disable-ticketing
Mit dieser Option wird das Ticketing deaktiviert. Damit sind Client-Verbindungen ohne Passwort möglich.
     disable-copy-paste
Deaktiviert Copy and Paste zwischen SPICE-Client und dem Gast-System.
     tls-port=nr
Mit der Optionen tls-port wird der Port vorgegeben, auf dem der SPICE-Server verschlüsselt kommuniziert. Es ist zumindest eine der beiden Optionen port oder tls-port anzugeben. Mit tls-port sind auch x509-Zertifikate zu verwenden.
     x509-dir=dir
     x509-key-file=file
     x509-key-password=secret
     x509-cert-file=file
     x509-cacert-file=file
Gibt das Verzeichnis mit den x509-Zertifikates vor. Diese Optionen sind zusammen mit der Option tls-port anzuwenden und erfordern ein x509-Zertifikat zum abgesicherten Verbindungsaufbau. Der Server sendet dabei sein x509-Zertifikat zum Client. Es werden die gleichen Dateinamen wir bei der Option -vnc $display,x509=$dir verwendet. Die Festlegung eines Passwortes mit x509-key-password ist zu empfehlen. Mit der Option x509-cert-file wird auf die Datei mit dem SSL-Zertifikat verwiesen. Dieses Zertifikat kann ein selbst signiertes Zertifikat oder eine Zertifikatskette sein und wird nicht durch den Client überprüft. Es wird nur für das Senden des Public-Keys vom Server zu dem Client verwendet. Mit der Option x509-cacert-file wird auf die Datei mit der CA (Certificate Authority) und dem CRL (Certificate Revocation List) verwiesen.
     x509-dh-key-file=file
Mit dieser Option wird auf die Datei mit dem symmetrischen Diffie-Hellman-Schlüssel verwiesen.
     tls-ciphers=list
Mit der Option tls-ciphers wird die gewünschte Cipher-Suite angegeben. Eine Cipher-Suite definiert im kryptographischen Protokoll TLS (Transport Layer Security), welche Algorithmen zum Aufbau einer Datenverbindung verwendet werden. Weitere Informationen findet man unter der URL http://www.openssl.org/docs/apps/ciphers.html.
     tls-channel=      [main|display|inputs|record|playback|tunnel]
     plaintext-channel=[main|display|inputs|record|playback|tunnel]
Die von SPICE verwendeten Übertragungskanäle (Channels) können gesichert oder ungesichert sein. Mit der Option tls-channel werden alle (all) oder bestimmte Channels verschlüsselt. Mit der Option plaintext-channel werden alle (all) oder bestimmte Channels nicht verschlüsselt. Die Optionen können mehrfach angewendet werden, um mehrere Channels zu definieren. Per Default wird für alle Channels sowohl der abgesicherte als auch der ungesicherte Modus unterstützt. Die jeweilige Verwendung hängt von den angewandten SPICE-Optionen port und tls-port ab.
     image-compression=[auto_glz|auto_lz|quic|glz|lz|off]
Konfiguriert die verlustfreie Bildkompression. quic basiert auf den SFALIC-Algorithmus. lz aktiviert den Lempel-Ziv-Algorithmus. Dieses verlustfreie Komprimierungsverfahren wird zum Beispiel im Bildformat GIF eingesetzt. glz nutzt den Lempel-Ziv-Algorithmus mit einem globalen Wörterbuch. Dieses Wörterbuch wird zur Laufzeit generiert. Mit den Optionen auto_glz und auto_lz wird ein automatisches Umschalten zwischen glz beziehungsweise lz und quic ermöglicht. Dabei wird je nach Bildeigenschaften das optimale Verfahren ermittelt und angewandt. Mit der Option off wird die Bild-Kompression deaktiviert. Die Default-Einstellung ist auto_glz.
     jpeg-wan-compression=[auto|never|always]
     zlib-glz-wan-compression=[auto|never|always]
Konfiguriert die verlustbehaftete WAN-Bildkompression für langsame Verbindungen. Die Default-Einstellung ist auto.
     streaming-video=[off|all|filter]
    
Die Option streaming-video konfiguriert die Erkennung von Video-Streams. Es wird dann die verlustbehaftete Kompression angewendet. Die Default-Einstellung ist filter.
     agent-mouse=[on|off]
Die Option agent-mouse definiert, ob der SPICE-Agent von dem Maus-Modus des Clients verwendet werden soll. Der Default-Wert ist on.
     playback-compression=[on|off]
(De-)Aktiviert die Playback-Kompression. Dabei wird der CELT-Algorithmus (Constrained Energy Lapped Transform) angewendet. CELT ist ein Kompressionsalgorithmus für Audio-Daten. Der Default-Wert ist on.
-portrait

Rotiert die grafische Ausgabe um 90 Grad entgegen dem Uhrzeigersinn (nur PXA LCD).

-rotate grad

Rotiert die grafische Ausgabe um die angegebene Gradzahl entgegen dem Uhrzeigersinn (nur PXA LCD).

-vga [std|cirrus|vmware|qxl|xenfb|none]

Wählt den Typ der emulierten Grafik-Karte aus.

     std
Simuliert eine Standard-VGA-Karte mit VESA-Bochs-Extensions. Unterstützt das Gast-System die VESA 2.0 VBE-Extensions kann diese Option für höhere Auflösungen (>= 1280x1024x16) gewählt werden.
     cirrus
Es wird eine CL-GD5446-PCI-VGA-Karte emuliert. Diese Option ist als Default voreingestellt. Alle Versionen ab Microsoft Windows 95 erkennen diese Grafik-Karte. Für optimale Performance ist im Host- und Gast-System jeweils eine Farbtiefe von 16 Bit einzustellen.
     vmware
Simuliert einen VMware SVGA-II-kompatiblen Adapter. Diese Option wird für Gast-Systeme mit installierten Grafik-Treibern der VMware-Tools verwendet.
     qxl
Simuliert ein QXL-Device. Diese paravirtualisierte Grafikkarte ist VGA-kompatibel mit VESA 2.0 VBE-Support. Dieses Device ist zusammen mit der Option -spice anzuwenden. Zu empfehlen ist die Installation eines QXL-Treibers im Gast-System.
     xenfb
Simuliert einen Xen-Frame-Buffer. Bei einem Linux-Gast-System wird das entsprechende Modul mit dem Befehl modprobe xenfb geladen.
     none
Deaktiviert die VGA-Karte.
-std-vga (bis QEMU 0.9.1)

Simuliert eine Standard-VGA-Karte mit VESA-Bochs-Extensions. Per Default wird eine CL-GD5446-PCI-VGA-Karte emuliert. Diese Option wurde ab QEMU 0.10.0 durch die Option -vga abgelöst.

-full-screen

Startet die Emulation im Vollbildmodus.

-vnc display[,option[,option[,...]]] (Wird ersetzt durch -display vnc.) 

Startet die Instanz mit einem VNC-Server auf der Display-Nummer display. Normalerweise wird für die VGA-Ausgabe das Simple DirectMedia Layer (SDL) genutzt. Mit der Option -vnc ist es möglich, die Ausgabe über eine VNC-Session umzuleiten. Nützlich ist es dabei die Option -usbdevice tablet anzuwenden. Weiterhin kann das Tastatur-Layout mit der Option -k angegeben werden. Für display ist folgende Syntax möglich:

     host:d
TCP-Verbindungen werden nur vom Host auf Display d erlaubt. Der TCP-Port ist 5900+d. Der Parameter host kann weggelassen werden, wenn der Server sich zu allen Interfaces verbinden soll.
     unix:path
Die Verbindung wird durch ein UNIX-Domain-Socket ermöglicht. Der Parameter path definiert den Pfad zu dem Socket.
     none
VNC wird zwar initialisiert aber nicht gestartet. Im QEMU-Monitor wird VNC mit dem Befehl change vnc gestartet.

Folgende Optionen werden nach display angegeben. Mehrere Optionen trennt man mit Kommas.

     reverse
Die Verbindung zu dem VNC-Client ist Reverse. Bei einer Netzwerk-Verbindung ist d eine TCP-Port-Nummer und keine Display-Nummer.
     password
Erfordert für die Verbindung zum Client eine Passwort-Authentifizierung. Das Passwort muss im QEMU-Monitor mit dem Befehl change vnc password gesetzt werden.
     tls
Zur Erhöhung der Sicherheit wird für die Verbindung vom Client zum Server die anonymous Transport Layer Security (TLS) genutzt. Diese Option sollte mit der Option x509 oder x509verify kombiniert werden.
     x509=/path/to/certificate/dir
Diese Option ist zusammen mit der Option tls anzuwenden und erfordert ein x509-Zertifikat zum abgesicherten Verbindungsaufbau. Der Server sendet dabei sein x509-Zertifikat zum Client. Die Festlegung eines Passwortes ist zu empfehlen. Nach dem Gleichheitszeichen wird der Pfad zu der Zertifikatsdatei angegeben.
     x509verify=/path/to/certificate/dir
Diese Option ist zusammen mit der Option tls anzuwenden und erfordert x509-Zertifikate zum abgesicherten Verbindungsaufbau. Der Server sendet dabei sein x509-Zertifikat zum Client und fordert vom Client dessen x509-Zertifikat an. Anschließend überprüft der Server das Zertifikat des Clients gegen das CA-Zertifikat. Nach dem Gleichheitszeichen wird der Pfad zu der Zertifikatsdatei angegeben. Die Festlegung eines Passwortes ist zu empfehlen.
     sasl
Die Option erfordert die Verwendung des Simple Authentication and Security Layer (SASL) zur Authentifikation des VNC-Clients gegenüber dem VNC-Server. Das Framework SASL bietet dem Applikationsprotokoll eine standardisierte Möglichkeit der Aushandlung von Kommunikationsparametern zwischen Server und Client. Es können unter anderem die Authentifizierungsmethoden PAM, GSSAPI/Kerberos, LDAP, SQL-Datenbank und Einmal-Keys angewendet werden. Durch die Konfiguration der jeweiligen SASL-Implementierungen wird ein Verfahren festgelegt. Wurde QEMU mit der Unterstützung für SASL kompiliert, erfolgt dies durch die SASL-Konfigurationsdatei /etc/sasl2/qemu.conf. Alternativ wird auf eine andere Konfigurationsdatei mit der Variable SASL_CONF_PATH verwiesen. Es ist zu empfehlen, dass SASL immer zusammen mit TSL und x509 verwendet wird. Beispiel:
qemu [...OPTIONS...] -vnc :1,sasl -monitor stdio
     acl
Wurde QEMU mit der Unterstützung für ACL kompiliert, aktiviert diese Option die Zugriffskontrolle des x509-Client-Zertifikates und des SASL gegen eine Zugriffssteuerungsliste (Access Control List). Bei x509-Client-Zertifikaten wird der Distinguished Name getestet. Dieser hat zum Beispiel die Form C=DE,O=BLA,L=Berlin,CN=robert. Bei SASL wird der Benutzername überprüft. Je nach verwendeten SASL-Plugin wird der Benutzername beispielsweise in den Formen robert oder robert@beispiel.de angegeben. Wenn der acl-Flag gesetzt wird, ist die initiale Zugriffssteuerungsliste leer und verfügt nur über die Deny-Policy. Dadurch wird verhindert, dass jemand unerlaubten Zugriff erhält, solange der VNC-Server noch keine ACL geladen hat. Zum Verwalten der Zugriffssteuerungsliste dienen die Befehle acl_show, acl_policy, acl_allow und acl_remove des QEMU-Monitors.
     lossy
Ermöglicht eine verlustbehaftete Kompressionsmethode (gradient, JPEG, ...). Wird diese Option aktiviert, kann es zu verlustbehafteten Aktualisierungen des Bildschirmaufbaus kommen. Es wird dabei eine wesentlich geringere Bandbreite benötigt.
     non-adaptive
Deaktiviert die adaptive Kodierung. Diese ist per Default aktiviert. Bei der adaptive Kodierung wird versucht häufig änderende Bildbereiche zu erkennen. Diese werden mit verlustbehafteten Kodierungen (zum Beispiel JPEG) übertragen, um Bandbreite zu sparen.

[bearbeiten] Netzwerk-Optionen

-net nic[,vlan=n][,macaddr=mac][,model=type][,name=str]
[,addr=str][,vectors=v]

Erzeugt eine neue Netzwerkkarte. Wird die Option -net nicht verwendet, wird eine einzelne Netzwerkkarte emuliert.

     vlan=n
Die Netzwerkkarte wird mit dem VLAN n verbunden (Default n = 0).
     macaddr=mac
Mit macaddr wird eine MAC-Adresse vorgegeben.
     model=type
Mit dem Parameter model lassen sich die Netzwerkkarten virtio, i82551, i82557b, i82559er, ne2k_pci (Default für x86-PC bei älteren QEMU-Versionen), ne2k_isa, pcnet, rtl8139, e1000 (Default für x86-PC), smc91c111, lance und mcf_fec einstellen. Es werden nicht alle Netzwerkkarten von allen Host-Systemen unterstützt. Mit -net nic,model=? lassen sich die verfügbaren Netzwerkkarten auflisten.
     name=str
Die Netzwerkkarte wird zur besseren Adressierung benannt. Im QEMU-Monitor wird mit info network dieser Name angezeigt.
     addr=str
Definiert die PCI-Device-Address.
     vectors=v
Optional wird bei PCI-Netzwerkkarten deren Anzahl von MSI-X-Vektoren (Message Signaled Interrupts) vorgegeben. Diese Vorgabe hat zur Zeit keinen Effekt bei virtio-Karten. Mit einem Wert von 0 wird MSI-X deaktiviert.
-net user[,vlan=n][,name=str][,net=addr[/mask]][,host=addr] \
[,restrict=y|n][,hostname=host][,dhcpstart=addr][,dns=addr] \
[,tftp=dir][,bootfile=f][,hostfwd=rule][,guestfwd=rule]     \
[,smb=dir[,smbserver=addr]]

Verbindet den Usermode-Network-Stack zum VLAN n. Dazu sind keine Administrator-Rechte notwendig. Einstellungen werden im QEMU-Monitor mit info network angezeigt.

     vlan=n
Der User-Mode-Stack wird mit dem VLAN n verbunden (Default n = 0).
     name=str
Ein User-Mode-Stack wird zur besseren Adressierung benannt. Im QEMU-Monitor wird mit info network dieser Name angezeigt.
     net=addr[/mask]
Definiert die Netzwerkadresse und optional die Netzmaske für das Gast-System (Default = 10.0.2.0/8).
     host=addr
Definiert die für das Gast-System sichtbare IP-Adresse des Host-Systems. Per Default ist dies die zweite IP-Adresse in dem Gast-Netzwerk, zum Beispiel x.x.x.2.
     restrict=y|yes|n|no
Ist diese Option aktiviert, wird das Gast-System isoliert. Das heißt, das Gast-System kann keine Netzwerkverbindung zum Host aufbauen und auch das Routing über den Host ist nicht möglich. Diese Option beeinträchtigt nicht die Forward-Regeln (Parameter hostfwd und guestfwd).
     hostname=host
Definiert den vom integrierten DHCP-Server zugewiesenen DNS-Namen für das Gast-System.
     dhcpstart=addr
Definiert die erste Adresse des IP-Bereiches, die der DHCP-Server zuweisen kann. Dieser Bereich umfasst 16 IP-Adressen. Per Default liegt dieser Bereich zwischen x.x.x.16 und x.x.x.31. Zum Beispiel wird mit dhcpstart=10.0.2.50 per DHCP dem Gast-System eine IP-Adresse ab 10.0.2.50 vorgegeben.
     dns=addr
Definiert die für das Gast-System sichtbare IP-Adresse des integrierten DNS-Servers. Per Default ist dies die dritte IP-Adresse in dem Gast-Netzwerk, zum Beispiel x.x.x.3. Diese Adresse darf nicht mit der IP-Adresse des Host-Systems übereinstimmen.
     tftp=dir
Ermöglicht dem Gast-System per integriertem TFTP-Server einen lesenden Zugriff auf Dateien des Host-Systems, deren Pfad mit dir beginnt. Der TFTP-Client im Gast-System muss im Binary-Mode konfiguriert sein. Die Host-IP-Adresse ist 10.0.2.2.
     bootfile=file
Bei der Verwendung des User-Mode Network Stack wird mit dieser Option die mit file angegebene Datei als BOOTP-Datei im Netz veröffentlicht. In Verbindung mit der Option tftp kann ein Gast-System von einem lokalen Verzeichnis des Host-Systems gestartet werden. Beispiel bei Verwendung von pxelinux:
qemu -hda linux.img -boot n -net user,tftp=/path/to/tftp/files,bootfile=/pxelinux.0
     smb=dir[,smbserver=addr]
Ermöglicht den Datenaustausch zwischen Host- und Gast-System per Samba-Share (Windows-Freigabe) des Verzeichnisses dir im Host-System. Dies setzt einen Samba-Server auf dem Host-System voraus. Wurde auf dem Host-System bereits ein Samba-Server installiert und konfiguriert, kann im Gast-System auf dessen Freigaben über die URL \\10.0.2.4\ zugegriffen werden. Der Benutzer, unter dem QEMU läuft, muss die Rechte zum Starten dieses Samba-Servers haben. Der Parameter smbserver definiert die IP-Adresse des Samba-Servers. Per Default ist dies die vierte IP-Adresse in dem Gast-Netzwerk, zum Beispiel x.x.x.4. Im Host-System muss dazu ein Samba-Server unter /usr/sbin/smbd installiert sein.
     hostfwd=[tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport
Ermöglicht die Umleitung von TCP- oder UDP-Verbindungen von einem Port des Host-Systems auf einen Port des Gast-Systems. Diese Option kann mehrfach angegeben werden. Wird weder tcp noch udp als Verbindungstyp angegeben, wird das TCP-Protokoll verwendet. Durch Angabe von hostaddr kann die Forward-Regel an ein definiertes Netzwerk-Interface im Host gebunden werden. Wird guestaddr nicht vorgegeben, wird dessen Wert mit der ersten vom internen DHCP-Server vorgegebenen IP-Adresse belegt (x.x.x.15). Im QEMU-Monitor informiert der Befehl info usernet über die definierten Forward-Regeln. Weiterhin können im QEMU-Monitor neue Forward-Regeln mit dem Befehl hostfwd_add hinzugefügt werden. Mit dem Befehl hostfwd_remove werden Forward-Regeln gelöscht.
     guestfwd=[tcp]:server:port-dev
Leitet eine TCP-Verbindung vom Gast-System zu der IP-Adresse (server) und dem Port (port) auf ein Character-Device (dev) des Host-Systems um. Diese Option kann mehrfach angegeben werden.
-net tap[,vlan=n][,name=name][,fd=h][,ifname=name]                  \
[,script=file][,downscript=dfile][,sndbuf=nbytes][,vnet_hdr=on|off] \
[,vhost=on|off][,vhostfd=h][,vhostforce=on|off]

Verbindet das TAP-Netzwerk-Interface des Host-Systems mit dem VLAN n.

     script=file
Es wird das Netzwerk-Skript file (Default = /etc/qemu-ifup) für die Aktivierung verwendet.
     downscript=dfile
Es wird das Skript dfile (Default = /etc/qemu-ifdown) für die Deaktivierung verwendet. Soll die Ausführung der Skripte unterbunden werden, ist script=no beziehungsweise downscript=no zu setzen.
     fd=h
Mit fd wird ein Handle eines bestehenden TAP-Netzwerk-Interface angegeben.
     sndbuf=nbytes
Mit der Option sndbuf begrenzt man die Größe des Sende-Puffers. Der Default-Wert von sndbuf=1048576 lässt sich mit sndbuf=0 deaktivieren.
     vnet_hdr=on|off
Wird die Option vnet_hdr=off gesetzt, wird das TUN/TAP-Flag IFF_VNET_HDR deaktiviert. Dieses Flag erlaubt das Senden und Empfangen von großen Paketen beziehungsweise Paketen mit Teil-Checksummen. Bei schlechten Support für IFF_VNET_HDR sollte diese Option deaktiviert werden.
     vhost=on
Aktiviert den experimentellen Kernel-Beschleuniger.
     vhostfd=h
Stellt eine Verbindung zu einem bereits geöffneten Netzwerk-Device h her.
     vhostforce=on|off
vhostforce=on erzwingt die Aktivierung des Kernel-Beschleunigers (vhost=on) für Gast-Systeme mit virtio-Treiber ohne MSI-X-Support. MSI-X ist eine Erweiterung des Message Signaled Interrupts ab PCI 3.0.
-net socket[,vlan=n][,name=name][,fd=h] \
[,listen=[host]:port][,connect=host:port]

Verbindet das VLAN n mit einem anderen VLAN über eine TCP-Socket-Verbindung. Ist listen angegeben, wartet die Instanz auf eingehende Verbindungen auf dem angegebenen Port (host ist optional). Auf der zweiten Instanz verbindet man sich mit connect zur ersten Instanz. Mit fd kann ein Handle eines bestehenden TCP-Sockets angegeben werden.

-net socket[,vlan=n][,name=name][,fd=h] \
[,mcast=maddr:port[,localaddr=addr]]

Erzeugt das VLAN n, das zusammen mit anderen Instanzen mit der gleichen Multicast-Adressee maddr und Port port genutzt werden kann. Mehrere Instanzen können auf unterschiedlichen Hosts laufen und den gleichen Bus nutzen. Der Multicast-Support ist kompatibel zu User Mode Linux (ethN=mcast). Mit fd kann ein Handle eines bestehenden UDP-Multicast-Sockets angegeben werden. Mit localaddr=addr wird die IP-Adresse des Hosts vorgegeben, von dem die Pakete versendet werden sollen.

-net vde[,vlan=n][,name=name][,sock=socketpath][,port=n] \
[,group=groupname][,mode=octalmode] 

Wurde QEMU mit der Unterstützung für VDE kompiliert, wird mit dieser Option das VLAN n mit dem Port n eines VDE Switches (Virtual Distributed Ethernet) verbunden. Dieser virtuelle Switch ist auf dem Host-System installiert und wartet auf eingehende Verbindungen auf dem Socket socketpath. Mit der Gruppe groupname und dem Modus octalmode ist es möglich die Eigentümer- und Zugriffsrechte anzupassen.

-net channel,port:dev (wird ersetzt durch -net user,guestfwd=...)

Leitet die Netzwerkverbindung des Ports zum Character-Device dev um.

-net dump[,vlan=n][,file=f][,len=n]

Speichert die Daten des Netzwerk-Verkehrs vom VLAN n in die Datei f (Default = qemu-vlan0.pcap). Es lässt sich mit n die maximale Byte-Anzahl pro Packet festlegen (Default = 64k). Als Dateiformat wird libpcap verwendet. Damit lassen sich die Daten mit dem Tools tcpdump oder Wireshark auswerten.

-net none

Deaktiviert alle Netzwerk-Devices. Wird dagegen nicht die Option -net angegeben, gilt die Default-Optionnnn -net nic -net user.

-netdev [user|tap|vde|socket],id=str[,option][,option][,...]

Mit QEMU 0.12.0 wurde die Option -netdev zur Definition von virtuellen Netzwerken eingeführt. Je nach Art des virtuellen Netzwerkes (user, tap, vde, socket) sind bestimmte Parameter anzuwenden. Dabei muss mit id eine Zeichenkette zur eindeutigen Identifizierung zugeordnet werden.

-tftp dir (wird ersetzt durch -net user,tftp=...)

Ermöglicht dem Gast-System per TFTP-Server einen lesenden Zugriff auf Dateien des Host-Systems deren Pfad mit dir beginnt. Dies setzt die Option -net user voraus. Der TFTP-Client im Gast-System muss im Binary-Mode konfiguriert sein. Die Host-IP-Adresse ist 10.0.2.2.

-bootp file (wird ersetzt durch -net user,bootfile=...)

Bei der Verwendung des User-Mode Network Stack wird mit dieser Option die mit file angegebene Datei als BOOTP-Datei im Netz veröffentlicht. In Verbindung mit der Option -tftp kann ein Gast-System von einem lokalen Verzeichnis des Host-Systems gestartet werden.

-smb dir (wird ersetzt durch -net user,smb=...)

Ermöglicht den Datenaustausch zwischen Host- und Gast-System per Samba-Share (Windows-Freigabe) des Verzeichnisses dir im Host-System. Dies setzt einen Samba-Server auf dem Gast-System voraus. Der Benutzer, unter dem QEMU läuft, muss die Rechte zum Starten dieses Samba-Servers haben. Weiterhin wird die Option -net user vorausgesetzt.

-redir [tcp|udp]:host-port:[guest-host]:guest-port  (wird ersetzt durch -net user,hostfw=...)

Ermöglicht die Umleitung von TCP- oder UDP-Verbindungen von einem Port des Host-Systems auf einen Port des Gast-Systems. Dies setzt die Option -net user voraus. Diese Option kann mehrfach angegeben werden. Diese Option wird ersetzt durch -net user,hostfwd.

[bearbeiten] Character Devices

Die allgemeine Syntax zur Definition von Character-Devices ist -chardev backend,id=id[,mux=on|off][,options]. Je nach Art des Devices (backend) sind bestimmte Optionen anzuwenden. Jedem Device muss mit id eine Zeichenkette zugeordnet werden. Diese dient zur eindeutigen Identifizierung. Die Option -chardev kann mehrfach angewendet werden.

     mux=on|off
Mit mux=on wird der Multiplexing-Mode aktiviert. Damit kann das Character-Device von mehreren Front-Ends verwendet werden. Mit der Tastenkombination [Strg] +[A] und [C] wird der Eingabe-Fokus zwischen den angeschlossenen Front-Ends gewechselt.
-chardev null,id=id[,mux=on|off]

Mit null wird ein leeres Device angelegt. Es sendet keine Daten und verwirft empfangene Daten.

-chardev socket,id=id[,host=host],port=host[,to=to]  \
 [,ipv4][,ipv6][,nodelay][,server][,nowait][,telnet] \
 [,mux=on|off]

Mit der Option socket wird ein Zwei-Wege-Socket angelegt. In diesem Fall ist es ein TCP-Socket, da host definiert wird.

     host
Für ein Socket im Listen-Modus wird optional die Host-Adresse vorgegeben. Für ein Socket im Sende-Modus wird mit host die Adresse des entfernten Hosts angegeben. Wird host nicht definiert, wird der Defaul-Wert von 0.0.0.0 verwendet.
     port
Für ein Socket im Listen-Modus wird mit dieser Option der Port vorgegeben. Für ein Socket im Sende-Modus wird mit port der Port des entfernten Hosts angegeben. port kann entweder als Port-Nummer oder als Service-Name angegeben werden.
     to
Diese Option ist nur relevant für Sockets im Listen-Modus. Wird diese Option vorgegeben und eine Verbindung zu port kann nicht hergestellt werden, so wird QEMU sich zu einem höheren Port verbinden. Mit to wird der höchstmögliche Port angegeben.
     ipv4, ipv6
Definiert das zu verwendende Protokoll: IPv4 oder Ipv6. Wird kein Protokoll definiert, wird ein beliebiges Protokoll verwendet.
     nodelay
Deaktiviert den Nagle-Algorithmus.
-chardev socket,id=id,path=path[,server][,nowait][,telnet] \
[,mux=on|off]

Mit der Option socket wird ein Zwei-Wege-Socket angelegt. In diesem Fall ist es ein Unix-Socket, da path definiert wird.

     path
Definiert den lokalen Pfad zu dem Socket.
     server
Definiert einen auf Verbindung wartenden Socket (Listen).
     nowait
QEMU wartet nicht zwingend auf eine Verbindung des Clients auf dem angegebenen Socket.
     telnet
Es werden Telnet-Escape-Sequenzen interpretiert.
-chardev udp,id=id[,host=host],port=port                    \ 
 [,localaddr=localaddr][,localport=localport][,ipv4][,ipv6] \
 [,mux=on|off]

Mit der Option udp wird der vom Gast-System empfangene Traffic zu einem entfernten Host per UDP gesendet.

     host
Definiert den entfernten Host zu dem die Verbindung hergestellt werden soll. Wird kein Host angegeben wird localhost verwendet.
     port
Definiert das Port des entfernten Hosts zu dem die Verbindung hergestellt werden soll.
     localaddr
Definiert die lokale IP-Adresse zu dem die Verbindung hergestellt werden soll. Wird keine IP-Adresse angegeben, wird der Defaul-Wert von 0.0.0.0 verwendet.
     localport
Definiert das lokale Port zu dem die Verbindung hergestellt werden soll. Wird kein Port definiert, wird ein beliebiges Port verwendet.
     ipv4, ipv6
Definiert das zu verwendende Protokoll: IPv4 oder Ipv6. Wird kein Protokoll definiert, wird ein beliebiges Protokoll verwendet.
-chardev msmouse,id=id[,mux=on|off]

Mit der Option msmouse werden für das Gast-System die Events einer Microsoft-Maus emuliert. Im QEMU-Monitor informiert der Befehl info mice über die Mäuse.

-chardev vc,id=id[[,width=width][,height=height]] \
[[,cols=cols][,rows=rows]][,mux=on|off]

Mit der Option vc wird eine Verbindung zur Text-Konsole von QEMU hergestellt. Zu dieser Textkonsole wird mit der Tastenkombination [Strg]+[Alt]+[2] umgeschaltet. Optional kann die Größe in Pixeln mit width und height eingestellt werden. Alternativ wird die Größe der Text-Konsole in Zeichen mit cols und rows definiert.

-chardev file,id=id,path=path[,mux=on|off]

Mit der Option file wird der vom Gast-System empfangene Traffic in eine Datei geschrieben. Mit path wird der Pfad zu der Datei definiert. Existiert diese Datei nicht, wird sie angelegt. Der Inhalt einer vorhandenen Datei wird überschrieben.

-chardev pipe,id=id,path=path[,mux=on|off]

Mit der Option pipe wird eine Zwei-Wege-Verbindung zum Gast-System angelegt. Auf Host-Systemen mit Microsoft Windows wird eine Duplex-Pipe mit den Pfad \\.pipe\path verwendet. Auf anderen Host-Systemen sind es zwei Pipes. In die Pipe path.in geschriebene Daten werden dem Gast-System übermittelt. Daten vom Gast-System werden aus der Pipe path.out gelesen. Da QEMU diese FIFOs nicht selber anlegt, müssen die Pipes bereits existieren.

-chardev console,id=id[,mux=on|off]

Das Device console sendet den Traffic vom Gast-System zu dem Standard-Output von QEMU. Diese Option steht nicht unter Host-Systemen mit Microsoft Windows zur Verfügung.

-chardev serial,id=id,path=path[,mux=on|off]

Das Device serial stellt eine Verbindung zu einem seriellen Device des Host-Systems her. Mit path wird das entsprechende Device des Host-Systems angegeben. Diese Option steht nicht unter Host-Systemen mit Microsoft Windows zur Verfügung.

-chardev pty,id=id[,mux=on|off]

Das Device pty legt ein neues Pseudo-Terminal auf dem Host-System an und verbindet sich zu diesem. Diese Option steht nicht unter Host-Systemen mit Microsoft Windows zur Verfügung.

-chardev stdio,id=id[,signal=on|off][,mux=on|off]

Das Device stdio stellt eine Verbindung zum Standard-Input und -Output des QEMU-Prozesses her. Diese Option steht nicht unter Host-Systemen mit Microsoft Windows zur Verfügung. Wenn Steuerungssignale im Terminal aktiviert sind, kann QEMU mit [Strg]+[C] verlassen werden. Mit signal=off wird dies unterbunden. Der Default-Wert ist signal=on.

-chardev braille,id=id[,mux=on|off]

Das Device tty stellt eine Verbindung zum lokalen BrlAPI-Server her.

-chardev tty,id=id,path=path[,mux=on|off]

Das Device tty kann nur bei Host-Systemen mit Linux, Sun, FreeBSD, NetBSD, OpenBSD and DragonFlyBSD angelegt werden und stellt eine Verbindung zum lokalen TTY-Device her. Mit path wird das entsprechende Device des Host-Systems angegeben.

-chardev parport,id=id,path=path[,mux=on|off]

Das Device parport kann nur bei Host-Systemen mit Linux, FreeBSD und DragonFlyBSD angelegt werden und stellt eine Verbindung zum lokalen parallelen Port her. Mit path wird das entsprechende Device des Host-Systems angegeben.

-chardev spicevmc,id=id,debug=debug,name=name[,mux=on|off]

Mit dem Device spicevmc wird eine Verbindung zu einem SPICE-Channel, wie zum Beispiel vdiport, hergestellt.

     debug=debug
Gibt den Debug-Level für spicevmc vor.
     name=name
Name des zu verbindenden Channels.

[bearbeiten] Bluetooth-Optionen

-bt hci[...]

Definiert die Funktionen des korrespondierenden Bluetooth Host Controller Interface (HCI). Die Parameter von -bt werden denen des HCI im Host-System zugewiesen. Wenn zum Beispiel in einer virtuellen Maschine nur ein HCI emuliert wird, wird nur die zuerst angegebene Definition von -bt hci[...] verwendet. Der Transport-Layer wird durch den Maschinen-Typ festgelegt. Zur Zeit verfügen nur die emulierten Nokia N800- und N810-Internet-Tablets über einen HCI. Die folgenden drei Arten werden erkannt.:

     -bt hci,null
Dies ist die Default-Einstellung. Der korrespondierende Bluetooth Host HCI hat keine interne Logic und reagiert auf keine Befehle oder Ereignisse.
     -bt hci,host[:id]
Der korrespondierende HCI leitet die Befehle und Ereignisse von und zu dem physikalischen HCI mit dem Namen id (Default = hci0) auf dem Host-System weiter. Die Option steht nur bei Systemen mit BlueZ (Linux Bluetooth Protocol Stack) zur Verfügung.
     -bt hci[,vlan=n]
Ein virtueller Standard-HCI wird angelegt, der am Bluetooth Scatternet n (Default = 0) teilnimmt. Ein Scatternet ist eine Gruppe von unabhängigen und asynchronen Piconets. Ein Piconet ist ein Personal Area Network (PAN), über dem sich Endgeräte via Bluetooth verbunden haben. Ähnlich wie bei VLANs können nur Geräte im gleichen Scatternet kommunizieren.
     -bt vhci[,vlan=n]
Die Option steht nur unter Linux zur Verfügung und legt einen HCI im Scatternet n (Default = 0) an. Dieses HCI wird mit dem Bluetooth Stack des Host-Systems verbunden. Dies ermöglicht die Kommunikation zwischen Host- und Gast-Systemen über ein gemeinsames Scatternet. Dafür ist der Linux VHCI-Treiber erforderlich.
     -bt device:dev[,vlan=n]
Emuliert ein Bluetooth-Device dev und platziert es im Netzwerk n (Default = 0). QEMU kann zur Zeit nur folgendes Device emulieren: keyboard - Emuliert eine virtuelle Wireless-Tastatur mit Human Interface Device Protocol (HIDP).

[bearbeiten] x86-Architektur

-win2k-hack

Diese Option wird bei der Installation von Microsoft Windows 2000 als Gast-Betriebssystem benötigt, da dessen Bug die Festplatte bei der Installation als voll kennzeichnet. Nach der Installation ist diese Option zu entfernen.

-rtc-td-hack (wird ersetzt durch -rtc driftfix)

Bei Problemen mit der Zeit-Drift bei Microsoft Windows mit ACPI HAL ist diese Option anzuwenden. Dabei wird ermittelt wie viele Timer-Interrupt nicht vom Windows-Gast-System verarbeitet werden und es wird versucht diese nochmals anzuwenden.

-no-fd-bootchk

Es wird der Test der Bootsignatur von Disketten deaktiviert. Dies kann bei Disketten älterer Betriebssysteme notwendig sein.

-no-acpi

Deaktiviert das Advanced Configuration and Power Interface (ACPI).

-no-hpet

Deaktiviert die Unterstützung für den High Precision Event Timer (HPET).

-balloon none

Deaktiviert das Ballooning-Device.

-balloon virtio[,addr=str]

Aktiviert das Ballooning-Device. Dies ist die Default-Einstellung. Für Linux als Gast-System ist mit dem Memory Ballooning das Anpassen des Arbeitsspeichers zur Laufzeit möglich.

     addr=str
Definiert die PCI-Device-Address.
-acpitable [sig=str][,rev=n][,oem_id=str][,oem_table_id=str] \
[,oem_rev=n][,asl_compiler_id=str][,asl_compiler_rev=n] \ 
[,oem_rev=n][,asl_compiler_id=str][,asl_compiler_rev=n] \ 
[,data=file1[:file2]...]

Konfiguriert die ACPI-Tabelle mit den vorgegebenen Header-Feldern und Inhalten aus den Dateien.

-smbios file=binary

Lädt ein SMBIOS-Eintrag von einer Binäry-Datei. Die SMBIOS-Spezifikationen (System Management BIOS) definieren Daten- und Zugriffsstrukturen für das Systemmanagement auf BIOS-Ebene. Diese Spezifikationen werden von der Distributed Management Task Force (DMTF) definiert. DMTF ist eine Normungsorganisation von IT-Unternehmen.

-smbios type=0[,vendor=str][,version=str][,date=str][,release=%d.%d]

Definiert SMBIOS-Felder vom Typ 0.

-smbios type=1[,manufacturer=str][,product=str][,version=str]   \
       [,serial=str][,uuid=uuid][,sku=str][,family=str] 

Definiert SMBIOS-Felder vom Typ 1.

[bearbeiten] Nicht-x86-Architektur

Die Emulatoren weiterer Prozessor-Architekturen werden wie folgt aufgerufen.

SPARC-Architektur:

Host ~$ qemu-system-sparc         [options] [disk_image]
Host ~$ qemu-system-sparc64       [options] [disk_image]

ARM-Architektur:

Host ~$ qemu-system-arm           [options] [disk_image]

MIPS-Architektur (32Bit, 64-Bit):

Host ~$ qemu-system-mips          [options] [disk_image]
Host ~$ qemu-system-mips64        [options] [disk_image]

MIPsel-Architektur (32Bit, 64-Bit):

Host ~$ qemu-system-mipsel        [options] [disk_image]
Host ~$ qemu-system-mips64el      [options] [disk_image]

Coldfire-Architektur:

Host ~$ qemu-system-m68k          [options] [disk_image]

PowerPC-Architektur (32Bit, 64-Bit):

Host ~$ qemu-system-ppc           [options] [disk_image]
Host ~$ qemu-system-ppc64         [options] [disk_image]
Host ~$ qemu-system-ppcemb        [options] [disk_image]

SuperH-Architektur:

Host ~$ qemu-system-sh4           [options] [disk_image]
Host ~$ qemu-system-sh4eb         [options] [disk_image]

ETRAX CRIS-Architektur:

Host ~$ qemu-system-cris          [options] [disk_image]

MicroBlaze-Architektur:

Host ~$ qemu-system-microblaze    [options] [disk_image]
Host ~$ qemu-system-microblazeel  [options] [disk_image]

Lattice Mico32:

Host ~$ qemu-system-lm32          [options] [disk_image]

IBM System z-Architektur:

Host ~$ qemu-system-s390x         [options] [disk_image]

Dec Alpha-Architektur:

Host ~$ qemu-system-alpha         [options] [disk_image]

Xtensa-Architektur:

Host ~$ qemu-system-xtensa        [options] [disk_image]
Host ~$ qemu-system-xtensaeb      [options] [disk_image]

Zusätzliche Optionen:

-g WxH[xDEPTH]

Setzt die initiale Bildschirmauflösung und Farbtiefe (nur bei qemu-system-*).

-prom-env string

Der SPARC-System-Emulator verfügt zusätzlich über diese Option zum Definieren einer OpenBIOS-Variablen im NVRAM.

-semihosting

Aktiviert die Semihosting Syscall Emulation (nur bei ARM und M68K). Bei der ARM-Architektur wird das Angel-Interface implementiert. Für die M68K-Architektur wird das ColdFire GDB-Interface implementiert. Dabei wird dem Gast-System der direkte Zugriff auf das Host-Filesystem erlaubt. Dies ist nur bei vertrauenswürdigen Gast-Systemen anzuwenden.

[bearbeiten] Spezielle Linux-Boot-Optionen

Mit Hilfe dieser Optionen wird ein Linux- oder Multiboot-Kernel geladen, ohne dass dieser auf eine virtuelle Festplatte installiert werden muss.

-kernel bzImage

Verwendet die Datei bzImage als Kernel-Image. Der Kernel kann entweder ein Linux-Kernel oder ein Multiboot-Kernel sein.

-initrd file

Verwendet die Datei file als Initial-RAM-Disk.

-initrd "file1 arg=foo,file2"

Diese Option steht nur für Multiboot-Kernel zur Verfügung. Mit file1 und file2 werden Module bezeichnet. arg=foo ist ein Parameter für das erste Modul.

-append cmdline

Verwendet cmdline als Kernel-Boot-Optionen. Diese Optionen hängen vom Gast-Kernel ab.

[bearbeiten] Debugging/Experten-Optionen

-serial dev

Leitet den seriellen Port zur Gerätedatei dev um. Der Default ist vc im grafischen Modus und stdio im Text-Modus. Diese Option kann mehrmals benutzt werden, um bis zu vier serielle Ports zu emulieren. Um alle seriellen Ports zu deaktivieren, ist die Option -serial none anzuwenden. Mögliche Gerätedateien sind:

     vc[:WxH] 
Definiert eine virtuelle Konsole. Optional wird die Breite und Höhe in Pixeln (zum Beispiel vc:800x600) oder die Anzahl der Zeichen (zum Beispiel vc:80Cx24C) angegeben.
     pty 
Unter Linux wird mit dieser Option ein Pseudo-TTY zugewiesen. Ein neues PTY wird automatisch zugeteilt.
     none 
Es wird kein Device zugeteilt.
     null 
Die Umleitung erfolgt auf ein leeres Device.
     /dev/XXX 
Unter Linux wird mit dieser Option der serielle Port des Gast-Systems auf ein tty-Device des Hosts, zum Beispiel /dev/ttyS0, umgeleitet. Die Parameter entsprechen denen des Host-Devices.
     /dev/parportN 
Unter Linux wird mit dieser Option der serielle Port des Gast-Systems auf ein Parallel-Port N des Host-Systems umgeleitet. Zur Zeit können SPP und EPP Features verwendet werden.
     file:filename 
Leitet die Ausgabe des seriellen Ports des Gast-Systems in eine Datei um. Eine Eingabe ist nicht möglich.
     stdio 
Unter Unix ist dies der Standard für die Ein- und Ausgabe (Tastatur, Bildschirm).
     pipe:filename 
Leitet die Ausgabe des seriellen Ports des Gast-Systems in eine benannte Pipe um.
     COMn 
Unter Windows wird mit dieser Option der serielle Port des Gast-Systems auf das serielle Port n des Hosts, zum Beispiel COM1, umgeleitet.
     udp:[remote_host]:remote_port[@[src_ip]:src_port] 
Diese Option implementiert die UDP Net Konsole. Wenn die Parameter remote_host oder src_ip nicht angegeben werden, wird der Default-Wert von 0.0.0.0 verwendet. Wenn kein Quell-Port (src_port) definiert wird, wird eine zufällige Port-Nummer ausgewählt. Für eine einfache Konsole ohne Eingabe wird netcat verwendet. Dazu wird QEMU mit der Option -serial udp::4555 und netcat mit den Optionen nc -u -l -p 4555 gestartet. Die Ausgaben der Instanz erscheinen auf der Net-Konsolen-Session. Um auch Zeichen via Net-Konsole zu senden, ist der Quell-Port festzulegen. Zum Beispiel -serial udp::4555@:4556.
     tcp:[host]:port[,server][,nowait][,nodelay] 
Die TCP-Net-Konsole hat zwei Modi. Ein Modus wird als location bezeichnet. Bei dem anderen Modus wartet die Instanz auf eine Verbindung von location. Per Default wird die TCP-Net-Konsole zum Port des Hosts gesendet. Bei der Verwendung der Option server erwartet die Instanz, dass sich eine Socket-Applikation des Clients zu dem Port verbindet, es sei denn nowait wurde angegeben. Die Option nodelay deaktiviert den Nagle-Buffering-Algorithmus. Wird die Option host weggelassen, wird die IP-Adresse 0.0.0.0 angenommen. Es ist nur möglich eine TCP-Verbindung herzustellen. Mit einem Telnet-Client verbindet man sich zu dem entsprechenden Device.
     telnet:host:port[,server][,nowait][,nodelay] 
Es wird das Telnet-Protokoll verwendet. Die Optionen haben die gleiche Funktionen wie bei -serial tcp. Der Unterschied ist, dass die Verbindung über dem Port ähnlich wie beim Telnet-Protokoll funktioniert. Damit ist es möglich, die MAGIC_SYSRQ-Sequenz zu verwenden. Unter Unix-Telnet-Clients wird diese Sequenz mit der Tastenkombination [Strg]+[]] eingeleitet und mit dem Befehl send break und [Enter] durchgeführt.
     unix:path[,server][,nowait] 
Es wird ein Unix-Domain-Socket verwendet. Diese Option wirkt in der gleichen Weise wie die Option -serial tcp mit der Ausnahme, dass der Unix-Domain-Socket-Pfad für die Verbindung verwendet wird.
     mon:dev_string 
Diese Option erlaubt es den QEMU-Monitor zu einem weiteren seriellen Port weiterzuleiten. Auf dem Monitor wird mit der Tastenkombination [Strg]+[A] gefolgt von [C] zugegriffen. In diesem Beispiel wird der Monitor zu einem Telnet-Server (Port 4444) weitergeleitet:
-serial mon:telnet::4444,server,nowait
     braille
Wurde QEMU mit der Unterstützung für brlapi kompiliert, aktiviert diese Option das Braille-Device. Dieses verwendet die BrlAPI zur Anzeige der Braille-Ausgabe für Sehbehinderte oder ein Fake-Device.
     msmouse
Aktiviert eine serielle Drei-Button-Maus. Im Gast-System ist das Microsoft-Protokoll einzustellen.
-parallel dev

Leitet den parallelen Port zum Char-Device dev um. Diese Option kann bis zu drei mal angewendet werden, um mehrere Ports zu simulieren. Mit -parallel none werden alle Parallel-Ports deaktiviert. Unter Linux als Host-System können die parallelen Schnittstellen /dev/parport0 bis /dev/parport2 direkt angesprochen werden. Ihnen müssen zuvor für den Account, unter dessen Rechten QEMU beziehungsweise die Kernel-based Virtual Machine läuft, Lese- und Schreibrechte zugewiesen werden.

-monitor dev

Leitet den QEMU-Monitor zur Gerätedatei dev um. Die Gerätedateien entsprechen denen des seriellen Ports. Per Default ist es vc im grafischen Modus und stdio im Text-Modus. Die Option control aktiviert das QEMU-Monitor-Protokoll.

-qmp dev

Die QMP-Kommunikation wird zur Gerätedatei dev umgeleitet. QMP (QEMU Monitor Protocol) ist ein auf JASON (http://www.json.org) basierendes Management Interface, welches Applikationen die Kommunikation mit der QEMU-Instanz ermöglicht (siehe http://wiki.qemu.org/QMP).

-mon chardev=[name][,mode=readline|control][,default]

Definiert den Monitor auf chardev name.

-debugcon dev   

Leitet die Ausgaben der Debug-Konsole zur Gerätedatei dev um. Die Debug-Konsole ist ein I/O-Port. Es wird typischerweise das Port 0xe9 verwendet. Die möglichen Gerätedateien entsprechen denen von -serial dev. Der Default ist vc im grafischen Modus und stdio im Text-Modus.

-pidfile file

Schreibt die PID in die Datei file.

-singlestep

Die Instanz wird im Singlestep-Modus gestartet.

-S

Friert die CPU beim Start ein. Im QEMU-Monitor startet man mit dem Befehl cont oder c die Ausführung. Mit stop lässt man die Instanz wieder pausieren.

-gdb dev

Wartet auf eine GDB-Verbindung auf dem Device dev. Typische Verbindungen basieren dabei auf TCP. Möglich sind aber auch UDP, Pseudo-TCP und stdio.

-s

Wartet auf eine GDB-Verbindung auf Port 1234. Dies entspricht der Option -gdb tcp::1234.

-p port  (Wird nicht mehr verwendet.)

Ändert den Port für die GDB-Verbindung auf port.

-d item1,...

Schreibt Log-Daten in die Log-Datei /tmp/qemu.log. Diese Option verlangsamt QEMU. Die möglichen Log-Items listet -d ? auf. Mehrere Einträge werden mit Kommas getrennt. Beispiel: qemu -D ./qemu.log -d int,cpu

     out_asm
Zeigt den generierten Host-Assemler-Code für jeden kompilierten Translation-Block (TB) an.
     in_asm
Zeigt den Ziel-Assemler-Code für jeden kompilierten Translation-Block an.
     op
Zeigt Micro-OPs für jeden kompilierten Translation-Block an.
     op_opt
Zeigt die Mikro-Operationen (micro operations) vor der EFLAGS-Optimierung und nach der Liveness Analysis an.
     int
Zeigt Interrupts/Exceptions in einem kurzen Format an.
     exec
Zeigt das Trace vor jedem ausgeführten Translation-Block an. Die Ausgaben sind sehr umfangreich.
     cpu
Zeigt den CPU-Status vor jeder Block-Translation an.
     pcall
Zeigt Protected-Mode-Far-Calls/-Returns/-Exceptions an.
     cpu_reset
Zeigt den CPU-Status vor den CPU-Resets an.
-D logfile

Schreibt Log-Daten in die angegebene Log-Datei. Per Default wird /tmp/qemu.log verwendet. Diese Option ist zusammen mit der Option -d sinnvoll.

-hdachs c,h,s[,t]

Erzwingt für die virtuelle Festplatte die Verwendung der angegebenen physikalischen Geometrie (1 <= c <= 16383, 1 <= h <= 16, 1 <= s <= 63) und bewirkt optional den BIOS-Translation-Modus (t=none, lba oder auto). Bei modernen Festplatten erkennt QEMU diese Werte automatisch. Nützlich ist diese Option für alte DOS-Festplatten.

-L path

Definiert den Pfad zum Verzeichnis mit den BIOS- und VGA-BIOS-Dateien.

-bios file 

Definiert den Dateinamen des Bios-Images.

-kernel-kqemu (bis QEMU 0.11.x)

Aktiviert die volle KQEMU-Virtualisierung. KQEMU wird ab QEMU 0.12.0 nicht mehr unterstützt.

-no-kqemu (bis QEMU 0.10.6)

Deaktiviert die Verwendung des KQEMU-Kernel-Moduls. Dies ist zum Beispiel bei der Installation von Microsoft Windows als Gast-System notwendig. KQEMU wird ab QEMU 0.12.0 nicht mehr unterstützt.

-enable-kqemu (bis QEMU 0.11.x)

Aktiviert die Verwendung des KQEMU-Kernel-Moduls. KQEMU wird ab QEMU 0.12.0 nicht mehr unterstützt.

-enable-kvm   (wird ersetzt durch -machine accel=kvm)

Aktiviert die KVM Hardware-Virtualisierung.

-no-kvm       (bis QEMU 0.14.x)

Deaktiviert die KVM Hardware-Virtualisierung. Dies ist zum Beispiel bei der Installation von Microsoft Windows als Gast-System notwendig.

-no-kvm-irqchip 

Deaktiviert den KVM-Kernel-Mode PIC/IOAPIC/LAPIC.

-no-kvm-pit     

Deaktiviert den KVM-Kernel-Mode PIT.

-no-kvm-pit-reinjection 

Deaktiviert den KVM-Kernel-Mode PIT-Interrupt-Reinjection

-pcidevice host=bus:dev.func[,dma=none][,name=string]

Stell das angegebene PCI-Device des Host-Systems dem Gast-System zur Verfügung.

     dma=none
Es erfolgt keine DMA-Translations. Per Default wird IOMMU angewendet.
     name=string
Der Parameter string wird für die Log-Ausgabe verwendet.
-enable-nesting

Die Option -enable-nesting wurde wieder entfernt. Stattdessen ist -cpu ,+svm anzuwenden.

-nvram FILE

Damit wird der Inhalt eines ia64-NVRAM aus einer Datei geladen. Diese Option wird nicht mehr unterstützt.

-tdf

Aktiviert eine Time Drift-Kompensation für das Gast-System. Diese Option wird nicht mehr unterstützt.

-kvm-shadow-memory MEGABYTES

Dem KVM MMU-Shadowing wird die vorgegebene Speichergröße zugewiesen.

-xen-domid id

Definiert die Domain-ID des Xen-Gast-Systems. Diese Option steht nur zur Verfügung, wenn QEMU mit Xen-Support kompiliert wurde.

-xen-create id

Generiert eine Domain unter Verwendung von Xen-Hypercalls und Umgehung von xend und sollte nicht in Kombination mit xend angewendet werden. -xen-create wird von libvirtd unter QEMU mit Xenner oder unter dem Xen-Hypervisor aufgerufen. Diese Option steht nur zur Verfügung, wenn QEMU mit Xen-Support kompiliert wurde.

-xen-attach id

Generiert eine Domain unter Verwendung von xend. Die Optionen -xen-create und -xen-attach können nicht zusammen genutzt werden. Diese Option steht nur zur Verfügung wenn QEMU mit Xen-Support kompiliert wurde.

-no-reboot

Unterbindet ein Reboot. Stattdessen wird die Instanz beendet.

-no-shutdown

Die Instanz wird nach dem Herunterfahren des Gast-Systems nicht beendet.

-loadvm [tag|id]

Startet die Instanz direkt mit einem zuvor gesicherten Zustand der virtuellen Maschine. Dies entspricht loadvm im QEMU-Monitor.

-daemonize

Mit der Option -daemonize wird die Instanz als Daemon-Prozess gestartet.

-option-rom file

Lädt den Inhalt der angegebenen Datei file als optionales ROM für EtherBoot (siehe Option -boot n).

-clock method

Definiert die Methode des Timer-Alarms. Die verfügbaren Methoden (dynticks, hpet, rtc, unix) werden mit -clock ? angezeigt.

-rtc [base=utc|localtime|date][,clock=host|vm][,driftfix=none|slew]

Definiert die Einstellungen der Systemuhr (Real Time Clock).

     base=utc|localtime|date
Mit base=utc wird die Systemuhr auf die koordinierte Weltzeit (Universal Time Coordinated) gesetzt. Dies ist die Default-Einstellung. Für DOS- und Windows-Gast-Systeme ist base=localtime vorzugeben. Damit wird Local Time eingestellt. Die Option base=date stellt die Zeit der Systemuhr beim Start auf den Wert von date. Mögliche Werte sind zum Beispiel 2008-04-17T16:01:21 oder 2008-04-17.
     clock=host|vm
Per Default wird die Systemuhr der Instanz nach der Systemuhr des Host-System gestellt. Mit der Option clock=vm läuft die Systemuhr der Instanz isoliert vom Host.
     driftfix=none|slew
Die Option driftfix steht nur bei x86-Architekturen zur Verfügung. Bei Problemen mit der Zeit-Drift bei Microsoft Windows mit ACPI HAL ist die Option driftfix=slew anzuwenden. Dabei wird ermittelt, wie viele Timer-Interrupt nicht vom Windows-Gast-System verarbeitet werden und es wird versucht, diese nochmals anzuwenden.
-localtime (wird ersetzt durch -rtc base=localtime)

Setzt die Systemuhr auf Local Time. Diese Option ermöglicht DOS- und Windows-Gast-Systemen die korrekte Uhrzeit einzustellen. Die Default-Einstellung ist UTC.

-startdate date (wird ersetzt durch -rtc base=date)

Diese Option stellt die Zeit der System-Uhr beim Start auf den Wert von date. Mögliche Werte sind now (jetzt), 2008-04-17T16:01:21 oder 2008-04-17. Der Default-Wert ist now.

-icount [N|auto]

Aktiviert den virtuellen Instruction-Counter. Die virtuelle CPU führt dann eine Instruktion alle 2^N ns aus. Wird auto festgelegt, so wird die Geschwindigkeit der CPU automatisch so angepasst, dass die virtuelle Zeit innerhalb von einigen Sekunden in der realen Zeit bleibt.

-watchdog model 

Aktiviert ein virtuelles Hardware-Watchdog-Device. Mit diesem Device wird das System überwacht. Dazu muss das Gast-System über einen entsprechenden Treiber verfügen. Wird im Gast-System der Watchdog aktiviert, muss ein Agent periodisch Anfragen an den Hardware-Watchdog stellen. Bleiben diese Anfragen aus, so führt das Hardware-Watchdog-Device eine vorgegebene Aktion aus. Zum Beispiel kann dabei das Gast-System neu gestartet werden (siehe -watchdog-action). Mit dem Parameter model wählt man das zu emulierende Modell. Die verfügbaren Modelle listet -watchdog ? auf. Zur Zeit werden die Modelle i6300esb (Intel 6300ESB) und ib700 (iBASE 700) emuliert. Die Auswahl richtet sich nach der Unterstützung des Modells durch das Gast-System.

-watchdog-action reset|shutdown|poweroff|pause|debug|none

Definiert die Aktion, wenn der Watchdog-Timer Alarm schlägt. Mögliche Aktionen sind reset (Default), shutdown (ordnungsgemäßes Herunterfahren), poweroff, pause, debug (Ausgabe einer Debug-Meldung) oder none (keine Aktion). Die Aktion wird im QEMU-Monitor mit dem Befehl watchdog_action geändert.

-echr numeric_ascii_value

Wurde die Option -nographic angegeben, wird mit der Option -echr die Tastenkombination [Strg]+[A] geändert. Die Default-Einstellung ist 0x01 und entspricht dem Buchstaben A. Die anderen Buchstaben werden entsprechend ihrer Position im Alphabet codiert. Es ist möglich diese Zahl in Dezimal- oder Hexadezimal-Schreibweise anzugeben. Soll zum Beispiel die Tastenkombination auf [Strg]+[T] geändert werden, ist dazu -echr 0x14 oder -echr 20 anzugeben.

-virtioconsole c

Setzt die Virtio-Konsole. Diese Option wird durch -device virtconsole ersetzt und dient zur Abwärtskompatibilität.

-show-cursor

Anzeige des Kursors.

-tb-size n

Definiert die Größe des Translation-Block (TB).

-incoming tcp:ip:port

Aktiviert die Bereitschaft für die zu empfangene Migration über das Netzwerk. Der Parameter ip definiert die IP-Adresse zum Empfang der Migration. Wird eine 0 angegeben, wird auf allen Interfaces empfangen. Der Parameter port definiert das Port.

-nodefaults

Verhindert das Erzeugen von Default-Devices.

-chroot dir

Beim Start der Instanz wird mit chroot in das angegebene Verzeichnis gewechselt. Diese Option ist nützlich in Kombination mit der Option -runas.

-runas user

Beim Start der Instanz wird der Prozess dem angegebenen Benutzer übereignet. Dies unterstützt eine Erhöhung der Sicherheit.

-old-param

Für die ARM-Architektur wird ein Modus mit den alten Parametern aktiviert.

-writeconfig file

Speichert die Konfiguration in die Datei file.

-readconfig file

Liest die Konfiguration aus der angegebenen Datei.

-nodefconfig

Beim Start von QEMU werden normalerweise die Einstellungen der Konfigurationsdateien sysconfdir/qemu.conf und sysconfdir/target-ARCH.conf verwendet. Die Option -nodefconfig unterdrückt dies. Das Verzeichnis sysconfdir wird beim Kompilieren vorgegeben.

-trace [events=file][,file=file]

Definiert die Optionen für das Tracing (siehe http://wiki.qemu.org/Features/Tracing).

     events=file
Definiert in einer Datei, welche Events protokolliert werden. Dabei muss jeder Event in einer Zeile stehen. Diese Option steht nur zur Verfügung, wenn QEMU mit der Option --enable-trace-backend=simple oder --enable-trace-backend=stderr kompiliert wurde.
     file=file
Definiert eine Datei in die die Trace-Ausgaben geschrieben werden. Diese Option steht nur zur Verfügung, wenn QEMU mit der Option --enable-trace-backend=simple kompiliert wurde.

[bearbeiten] Optionen der Userspace-Emulation

Für die Userspace-Emulation stehen folgende Programme zur Verfügung:

qemu-i386, qemu-x86_64, qemu-sparc, qemu-sparc32plus, qemu-sparc64, qemu-arm, qemu-armeb, qemu-mips, qemu-mipsel, qemu-m68k, qemu-ppc, qemu-ppc64, qemu-ppc64abi32, qemu-sh4, qemu-sh4eb, qemu-cris, qemu-microblaze, qemu-microblazeel. qemu-alpha, qemu-s390x und qemu-unicore32.

Syntax bei Linux als Host-System.

Host ~$ qemu-i386 [-h] [-d] [-L path] [-s size] [-cpu model] \
       [-g port] program [arguments...]

Syntax bei Mac OS X/Darwin als Host-System.

Host ~$ qemu-i386 [-h] [-d] [-L path] [-s size] \
        program [arguments...]

Syntax bei BSD als Host-System.

Host ~$ qemu-sparc64 [-h] [-d] [-L path] [-s size] [-bsd type] \
        program [arguments...]

[bearbeiten] Standard-Optionen

-h

Gibt eine Hilfestellung aus.

-version

Es wird die Version angezeigt und danach das Programm beendet.

-L path
-s size

Definiert die x86-Stack-Größe in Bytes (Default = 524288).

-cpu model

Wählt das CPU-Model. -cpu ? gibt eine Liste der möglichen CPU-Modelle aus.

-drop-ld-preload  

Verwirft LD_PRELOAD für den Ziel-Prozess.

-E var=value

Definiert beziehungsweise modifiziert Environment-Variablen.

-U var

Löscht die angegebene Environment-Variable.

-0 argv0

Ersetzt für den Zielprozess argv[0] durch argv0.

-B offset

Verschiebt die Basis-Adresse des Gast-System um die als offset angegebenen Bytes. Dies kann notwendig sein, wenn der Bereich für das Host-System reserviert ist. Dies Option wird nur bei einigen Host-System unterstützt.

-R size

Reserviert die angegebenen Bytes für den virtuellen Adressbereich des Gast-Systems. Es können die Maßeinheiten G, M und k verwendet werden.

-ignore-environment

Das Environmet des Host-System wird nicht verwendet.

-bsd type

Diese Option steht nur unter BSD zur Verfügung und definiert die zu emulierenden BSD-Varianten FreeBSD, NetBSD oder OpenBSD (Default).

[bearbeiten] Debug-Optionen

-d

Aktiviert das Logging (Log-Date = /tmp/qemu.log).

-p pagesize

Simuliert eine Host-Page-Size entsprechend pagesize in Bytes.

-g port

Wartet auf eine Verbindung des Debuggers gdb zum Port port.

-singlestep

Die Emulation wird im Singlestep-Modus gestartet.

-strace

Loggt die System-Calls.

[bearbeiten] Environment-Variablen

Man kann die Optionen -E und -U anwenden, um die Environment-Variablen zu manipulieren. Diese Optionen sind mehrfach anwendbar. Beispiel:

-E var1=val2 -E var2=val2 -U LD_PRELOAD -U LD_DEBUG

Wird eine Variable mehrfach vorgegeben, gilt der letzte Eintrag.

QEMU_STRACE

Wenn diese Environment-Variable mit einem Wert belegt ist, werden die System-Calls ähnlich wie bei dem Strace-Programm ausgegeben.

[bearbeiten] Tastaturkürzel

Im Fenster einer Instanz können folgende Tastaturkürzel eingegeben werden:


[Strg]+[Alt] Freigabe der Maus und Tastatur.
[Strg]+[Alt]+[1] Wechsel zur Konsole 1: Anzeige des Gast-Systems.
[Strg]+[Alt]+[2] Wechsel zur Konsole 2: QEMU-Monitor.
[Strg]+[Alt]+[3] Wechsel zur Konsole 3: Serielle Ausgabe.
[Strg]+[Alt]+[4] Wechsel zur Konsole 4: Parallele Ausgabe.
[Strg]+[Alt]+[H] Gibt Hilfestellung bei der Option -nographic.
[Strg]+[Alt]+[F] Umschalten zwischen Vollbild- und Fenster-Modus.
[Strg]+[Alt]+[+] Vergrößert die Bildschirmausgabe.
[Strg]+[Alt]+[-] Verkleinert die Bildschirmausgabe.
[Strg]+[Alt], [U] Stellt die ursprüngliche Fenstergröße wieder her.

In den virtuellen Konsolen einer Instanz dienen die Tastenkombinationen [Strg] +[Kursor nach oben], [Strg] +[Kursor nach unten], [Strg] +[Bild nach oben] und [Strg] +[Bild nach unten] zum Bewegen im Text. Mit der Option -echr können diese Tastaturkürzel angepasst werden.

Bei der Verwendung der Option -nographic sind folgende Tastenkombinationen möglich.


[Strg]+[A], [H] Ausgabe einer Hilfestellung.
[Strg]+[A], [?] Ausgabe einer Hilfestellung.
[Strg]+[A], [X] Beendet die Instanz.
[Strg]+[A], [S] Sichert Änderungen auf die virtuelle Festplatte bei Verwendung der Option -snapshot.
[Strg]+[A], [T] (De-)Aktiviert Zeitmarken in der Konsole.
[Strg]+[A], [B] Sendet einen Break (Magic Sysrq in Linux).
[Strg]+[A], [C] Wechselt zwischen Konsole und QEMU-Monitor.
[Strg]+[A], [Strg]+[A] Sendet die Tastenkombination [Strg]+[A].


<<<|###| >>>

Von „http://qemu-buch.de/de/index.php/QEMU-KVM-Buch/_Anhang/_Startoptionen_von_QEMU_und_KVM

Diese Seite wurde bisher 63.565 mal abgerufen. Diese Seite wurde zuletzt am 18. März 2012 um 16:34 Uhr geändert. Inhalt ist verfügbar unter der GNU Free Documentation License 1.2.


Finden

Blättern

News

Deutsch
Weitersagen
Bestellen
Tipps für Autoren
Autoren
Impressum


English
Order
Recommendation
The Authors
Contact



Letzte Änderungen


Ändern
Seite bearbeiten
Bearbeitungshilfe
Seitenoptionen
Diskussion
Kommentar hinzufügen
Druckversion
Seitendaten
Versionen
Links auf diese Seite
Änderungen an verlinkten Seiten
Meine Seiten
Anmelden
Spezialseiten
Neue Seiten
Dateiliste
Statistik
Kontakt
Mehr …