Anzeige:
Ergebnis 1 bis 14 von 14

Thema: Qemu / KVM

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Mod. FAQ/Howto/Emulation
    Registriert seit
    Sep 2000
    Beiträge
    17.397

    Qemu / KVM

    Inhalt:

    1) Was ist Qemu?

    2) Installation

    3) Der erste Test, fertige OS-Images

    4) Installation von Windows 98 als Gastbetriebssystem

    5) Tipps&Tricks im Umgang mit Gastbetriebssystemen wie z. B. Windows (98)

    6) Und so sieht es aus

    7) Aktuelle Probleme und Lösungen

    8) Drucken und Dateizugriff per Samba, Scannen über Netzwerk, Netcapi

    9) Anlegen und Verwaltung von Disk-Images

    10) GUIs für QEMU

    11) Qemu unter Windows

    12) Qemu und VNC

    13) KVM - Kernel based Virtual Machine


    Hinweis zur Qemu Version:

    An verschiedenen Stellen im Howto werden Versions-Nummern genannt. Ist die genannte Version neuer als die aktuelle, ist damit die GIT-Version gemeint. Zur Installation der GIT-Version siehe 2.3).


    Änderungen:

    20.06.04: erstellt
    21.06.04: Win98 als Gast
    22.06.04: Internetzugang, Screenshot
    23.06.04: Drucken (5)
    24.06.04: Neues Kapitel 7), WinSCP für Dateiaustausch (5)
    05.07.04: lomount zum Mounten (5, Dateiaustausch)
    11.07.04: Aktualisierung Qemu 0.60, CPU-Auslastung verringern unter Win9x (5)
    13.07.04: Downloadlink FreeOSZoo (fertige Images) (3)
    18.07.04: Windows NT 4 installieren (7)
    19.07.04: Hinweis auf 1024 Hz-Timer, Qemu-Konsole (5), Bochs Images (3)
    11.09.04: Samba (Kapitel 8)
    19.09.04: Kapitel 2 ergänzt (Windows Version, Hardware, Netzwerkfähigkeiten)
    15.11.04: Aktualisierung auf Version 0.61.
    18.11.04: Soundinstallation erweitert, Speichern/laden der virtuellen Maschine
    27.11.04: CVS-Installation (2.3)
    12.12.04: Disk-Images (9) neu
    12.02.05: Hinweis auf Arbeitsgruppe/Samba, KQEMU
    04.03.05: 5) Windows Gast Tuning Tipps
    10.03.05: 10) weitere Tipps, 5) mpcb Zwischenablage, 7) Win2K Disk Full Problem
    12.03.05: serielle Schnittstelle mit slsnif (5), KQEMU-Installation (11)
    22.03.05: GUIs (12)
    29.04.05: Drucken per Samba ergänzt/korrigiert (8)
    24.05.05: Scannen (8.2)
    28.05.05: Samba Server aus Qemu benutzen (8.1.2)
    30.05.05: Drucker per IPP (8.1.3)
    26.06.05: QVM86 (11.2)
    13.08.05: Links aktualisiert
    14.08.05: Windows Update CDs installieren (4.5)
    05.11.05: USB, Alsa, ES1370-Sound, Hinweis auf VMWARE Player
    09.11.05: USB_DEL Kommando, serielle Schnittstelle
    10.11.05: Parallelport
    04.12.05: Parameter für Usernetzwerk angepasst (-net nic -net user), CVS-Hinweis
    18.12.05: KQEMU / UDEV
    20.12.05: Qemu 0.80
    31.12.05: FAT virtuell
    06.01.06: Qemu für X64-Emulation
    07.01.06: Beispiel TUN/TAP-Konfiguration (8.3)
    08.01.06: Zwischenablage per Synergy (8.4), APM bei WIN XP&2K
    10.01.06: fließender Mauswechsel Host/Gast per Synergy (8.4.6)
    29.01.06: Links aktualisiert, SaneTwain Hinweise
    06.02.06: Qemu unter Windows (13)
    26.03.06: KQEMU 1.30
    29.04.06: Links aktualisiert, Kapitel 1 überarbeitet
    01.05.06: Qemu per VNC (14), mpcb entfernt, ShareClip (8.5)
    03.05.06: VNC korrigiert, USB-HID-Maus übergangslos (5)
    05.08.06: Windows Update/Win2K Hack (7)
    09.09.06: Netcapi-Link, Rechte für TUN-Interface
    07.10.06: Links aktualisiert, QVM86 entfernt (Projekt tot)
    05.11.06: Qemu / xgl&compiz (7)
    24.11.06: Qemu Guest Tools (8.4.2)
    13.12.06: TUN/TAP ab Kernel 2.6.18
    06.01.07: Links aktualisiert, Qemulator (GUI)
    07.01.07: QtEmu-Link
    06.02.07: KQEMU / GPL
    12.02.07: Problem Qemu übersetzen (0.9/Suse 10.2), TUN/TAP ergänzt
    18.02.07: KVM
    22.05.07: Seamless Desktop
    30.09.07: NTFS Image vergrößern (9.3)
    03.02.08: aktualisiert, Links kontrolliert, VMWARE-VGA, Intel e1000
    04.04.08: Umstellung CVS=>SVN
    28.04.08: Übergangslose Maus / Linux-Gast / evtouch-Treiber
    19.03.09: Alle Links aktualisiert, ac97 Sound, gcc3 Hinweis entfernt,VirtIO, Syntax e1000 korrigiert
    27.03.09: Beispiel-Bridge-Konfiguration
    29.03.09: Xenner-Link, hpet aus, OpenQRM-Link
    26.04.09: SVN abgelöst durch GIT
    21.11.09: Komplett überarbeitet, aktualisiert auf Stand Qemu 0.11.x (kvm, smb etc) (kqemu gestrichen)
    03.12.09: Links aktualisiert (qemu.org)
    03.02.10: Links aktualisiert (qemu wiki)
    Geändert von stefan.becker (03.02.10 um 19:51 Uhr)

  2. #2
    Mod. FAQ/Howto/Emulation
    Registriert seit
    Sep 2000
    Beiträge
    17.397

    1) Was ist Qemu?

    Full system emulation

    Qemu ist wie VMWARE oder Bochs ein PC-Emulator, der das parallele Betreiben anderer Betriebssysteme ohne Neustart des PCs erlaubt. Im Vergleich zu Bochs ist die Einrichtung relativ einfach als auch die Performance akzeptabel.

    Der große Unterschied zu anderen Emulatoren: Qemu läuft auch auf anderen Prozessoren als x86 und kann andere Prozessoren emulieren als einen Pentium.

    Beispiele:
    - Pentium Host mit Linux, x86 emulieren, Windows als Gast
    - Pentium Host mit Windows, x86 emulieren, Linux als Gast
    - PowerPC Host mit McOS, Sparc emulieren, Solaris als Gast

    Alle möglichen Kombinationen sind aus den unten angegebenen Links (Prozessoren, Betriebssysteme) zu entnehmen.

    Die Emulation der CPU kostet natürlich Rechenleistung, so dass der Gast merklich langsamer läuft als auf gleichwertiger, echter Hardware.

    VMWARE wird auch als Virtualisierer bezeichnet. Gemeint ist damit, dass der Prozessor nicht emuliert wird, sondern die Befehle des Gast-PCs direkt auf dem Hostprozessor ausgeführt werden. Dadurch läuft das Betriebssystem im virtuellen PC fast so schnell wie auf der echten Hardware.

    Zunächst wurde im Rahmen des Qemu Projektes das Beschleunigermodul KQEMU entwickelt, wodurch auch Qemu in den Genuss von Virtualisierung kam. Natürlich mit den dadurch bedingten Einschränkungen:

    - Host muss einen Prozessor x86 bzw. x86-64 haben
    - Der Gast nutzt natürlich 1:1 den gleichen Prozessor

    KVM (siehe Kapitel 13) ist ein Qemu-Ableger. Er nutzt die virtuelle Maschine von Qemu zur Emulation und bietet ein Kernelmodul, dass die Virtualisierungstechniken moderner Prozessoren nutzt. Alles hier für Qemu genannte gilt 1:1 für KVM.

    Seit neustem (Stand 11.09) scheint KQEMU tot zu sein. Stattdessen nutzt auch die Standard-Qemu-Version inzwischen KVM. Da KVM inzwischen im Linux Kernel standardmäßig enthalten ist, muss auch nichts extra installiert werden.


    User Mode Emulation

    Außerdem kann mit Qemu auf einem Linux Host eine User Mode Emulation gestartet werden. Damit kann ein zweiter Linux-Kernel parallel starten, darunter z. B eine speziell angepasste WINE Version. Das gibt Anwendern von z. B. Power-PC-Rechnern die Möglichkeit, Windows Programmme zu starten.


    Emulierte Hardware

    Unabhängig von der echten Hardware emuliert Qemu daraus folgende Standardhardware:

    - IDE-Controller mit bis zu 4 IDE Festplatten (Diskimages)
    - Diskettenlaufwerk
    - CDROM
    - Soundblaster 16 Soundkarte (aternativ ES1370, ac97)
    - Cirrus Logic Grafikkarte 5446 PCI (alternativ VESA-VGA, VMWARE-VGA)
    - Standard PS2 Rad-Maus
    - Realtek RTL 8029(AS) PCI Ethernet, alternativ Intel E 1000
    - serielle Schnittstelle (COM 1)
    - Parallelport (LPT 1)
    - USB-UHCI (Intel SB82371)
    - Gameport Joystick


    Netzwerkfähigkeiten

    Standardmäßig bietet Qemu ein NAT-Netzwerk ähnlich zu VMWARE/VirtualBox. Zugriff auf Internet, Ressourcen des Hosts und Zugriff auf Hostdateien über einen integrierten Sambaserver ist damit problemlos möglich.

    Über Standard-Linux-TUN/TAP-Netzwerkschnittstellen lässt sich auch ein Bridged-Netzwerk einrichten. Dies erfordert jedoch einige manuelle Konfiguration.


    Welche Windows Version als Gast?

    Siehe auch Kapitel 13, Beschleunigung durch KVM.

    Ohne die Beschleunigung sind Windows 98 und NT 4.0 erste Wahl, neuere Windows Versionen sind dann eher ungeeignet.


    Weitere Hilfe:

    Homepage: http://wiki.qemu.org/Main_Page

    Qemu läuft auf folgenden Host-Betriebssystemen: Linux, Windows, MacOS, *BSD

    Folgende Betriebssysteme können von Qemu ausgeführt werden: Linux, Windows, verschiedene Unix Derivate, Solaris (http://www.claunia.com/qemu/)

    Wie Bochs läuft es auch auf anderen Prozessoren als auf X86-kompatiblen.

    Außerdem kann Qemu auch andere Prozessoren als X86 emulieren, siehe: http://wiki.qemu.org/download/qemu-doc.html (Kapitel "Features")

    Deutsches Handbuch: http://qemu-buch.de/

    Qemu Dokumentation: http://wiki.qemu.org/Manual

    Entwickler-Mailingliste: http://mail.freesoftware.fsf.org/mai...nfo/qemu-devel

    Anwender-Forum: http://qemu-forum.ipi.fi/

    GIT-Download (Entwicklungs-Version): http://savannah.nongnu.org/git/?group=qemu


    Alternativen zu Qemu:

    - VirtualBox:

    http://www.linuxforen.de/forums/showthread.php?t=236444

    VirtualBox ist für Privatanwender kostenfrei. Außerdem gibt es eine etwas eingeschränkte Open Source Variante.

    - VMWARE: http://www.linuxforen.de/forums/show...threadid=47553

    Mit VMWARE Player und VMWARE Server stehen kostenlose Varianten zur Verfügung.

    - WINE: http://www.linuxforen.de/forums/show...threadid=48347

    Windows Programme direkt ausführen (API-Emulation).
    Geändert von stefan.becker (03.02.10 um 20:07 Uhr)

  3. #3
    Mod. FAQ/Howto/Emulation
    Registriert seit
    Sep 2000
    Beiträge
    17.397

    2) Installation

    2.1) Standard-Pakete

    Inzwischen gehört Qemu zum Standardumfang jeder Distribution. Daher erstmal im Paketmanager nachsehen, ob Qemu vorhanden ist.


    2.2) selbst übersetzen

    Wer selbst übersetzen will, besorgt sich über http://wiki.qemu.org/Download das Paket "qemu-x.y.tar.gz" (xyz=aktuelle Version).

    Das Auspacken&Übersetzen erfolgt nach dem Standard:

    Code:
    tar zxvf qemu*tar.gz (oder "tar jxvf qemu*bz2", wenn mit bzip2 gepackt)
    cd qemu*
    ./configure
    make
    make install
    Wer nur auf einem X86-Linux z. B. Windows starten möchte, braucht nur die reine i386-Emulation. Das spart einiges an Abhängigkeiten und Overhead und auch häufig Fehlermeldungen beim Übersetzen und fehlenden Abhängigkeiten der anderen Emulationen:

    Code:
    ./configure --target-list=i386-softmmu
    Qemu für X64-Linux:

    Code:
    ./configure --target-list=x86_64-softmmu
    Sollten Probleme beim Übersetzen auftauchen, sollten man zuerst mal die Abhängigkeiten überprüfen. Folgende Pakete werden auf jeden Fall gebraucht:

    - SDL
    - SDL-devel
    - tetex

    Ansonsten sollte man zuerst mal einen Blick in die beiliegende Datei "README" werfen und mal die Mailingliste befragen.

    Weitere Parameter:
    - "--prefix=/usr/local...": Basisverzeichnis für Installation
    - "--enable-kvm": Übersetzen mit KVM Support für Virtualisierung
    - "--audio-drv-list=alsa": Audioausgabe über ALSA (Standard OSS)


    2.3) GIT-Entwicklungsversion

    Manchmal ist die Installation der Qemu-GIT-Version nötig aufgrund eines aktuell bereits gelösten Problems.

    Als Voraussetzung muss das Paket "git-core" installiert sein (Name bei Suse, kann woanders abweichen).

    Download GIT-Version:
    Code:
    cd /usr/src
    git clone git://git.savannah.nongnu.org/qemu.git
    cd /usr/src/qemu
    Anschließend übersetzen&installieren wie oben unter 2.1)

    Aktualisieren:
    Code:
    cd /usr/src/qemu
    git pull
    Qemu GIT Homepage: http://savannah.nongnu.org/git/?group=qemu
    Geändert von stefan.becker (03.02.10 um 20:08 Uhr)

  4. #4
    Mod. FAQ/Howto/Emulation
    Registriert seit
    Sep 2000
    Beiträge
    17.397

    3) Der erste Test, fertige OS-Images

    Auf der Homepage gibt es Test-Images, z. B. eine kleine Linux-Distribution (siehe "QEMU disk images").

    Die Datei "linux-test-xxx.tar.gz" ziehen, entpacken mit "tar zxvf linux-test*".

    Nun mit "qemu -hda linux.img" den ersten Test versuchen (X64: "qemu-system-x86_64 -hda linux.img").

    Weitere fertige Images gibt es hier:


    http://www.oszoo.org

    Erhältlich sind Reactos (freier Windows Klon), FreeDOS und diverse Linuxe/Unixe. Damit hat man genug Stoff zum Probieren.

    Auch mit/für Bochs erstellte Images sollten gehen, getestet habe ich das mit Hurd. Hier gibt es fertige Bochs Images:

    http://bochs.sourceforge.net/diskimages.html


    Screenshot Qemu/Linux-Konsole:
    Geändert von stefan.becker (19.03.09 um 20:07 Uhr)

  5. #5
    Mod. FAQ/Howto/Emulation
    Registriert seit
    Sep 2000
    Beiträge
    17.397

    4) Installation von Windows 98 als Gastbetriebssystem

    Im folgenden wird die Installation von Windows 98 als Gast beschrieben. Was man schnell merkt: Im Unterschied zu Bochs ist die Konfiguration sehr einfach. Die wesentlichen Einstellungen können an der Kommandozeile übergeben werden. Eine Konfigurationsdatei ist nicht nötig.

    Vorbereitung / Zutaten:

    - Qemu installiert und läuft (Test siehe 3)
    - Windows 98 CD
    - Bootdiskette
    - Alternativ statt Bootdiskette eine bootfähige Win98 CD

    Falls die Bootdiskette fehlt: http://www.bootdisk.com/, http://www.boot-land.net

    Bitte das Copyright achten! Man muss natürlich im Besitz einer gültigen Windows 98 Lizenz sein. Falls nicht vorhanden, lässt sich hier preiswert eine Lizenz erstehen: http://www.ebay.de/.

    Hinweis X64-Linux: Der Befehl "qemu" wird ersetzt durch:

    Code:
    qemu-system-x86_64 ...

    QEMU Optionen bei Problemen ein/ausschalten

    Sollte es bei der Installation Probleme geben, kann man einige Optionen abschalten:

    ACPI: "-no-acpi" (http://en.wikipedia.org/wiki/Acpi)
    HPET: "-no-hpet" (http://en.wikipedia.org/wiki/HPET)
    Bsp.:
    Code:
    qemu ... -no-acpi -no-hpet
    ACPI sollte man nur zuschalten, wenn es Voraussetzung für den Betrieb ist. Vista lässt sich z. B. nur mit ACPI installieren.

    Weitere Optionen:
    "-win2k-hack": Verhindert Fehlermeldung "disk full" bei Windows 2000 Installation.


    4.1) Virtuelle Festplatte / Diskimage

    Das Windows 98 soll auf eine virtuelle Festplatte installiert werden.

    Der folgende Befehl legt die virtuelle Platte "win98.img" mit einer Größe von 1000 MB an:

    Code:
    qemu-img create -f raw win98.img 1000M
    Das Konzept der virtuellen Platte / Diskimage entspricht im wesentlichen der Vorgehensweise bei VMWARE und Bochs. Es ist eine große Containerdatei, die wie eine Festplatte angesprochen werden kann. Mehr zu diesem Thema aber im Kapitel 9).


    4.2) virtuelle Platte einrichten, mit Win98 Bootdiskette starten

    Zunächst muss mit einer Win98 Bootdiskette der virtuelle PC gestartet werden, um die virtuelle Festplatte zu partitionieren. Dazu eine Win98 Bootdiskette einlegen und folgenden Befehl zum Start eingeben.

    Code:
    qemu -fda /dev/fd0 -hda win98.img -boot a -no-acpi
    Nach Booten mit Windows-fdisk eine primäre DOS-Partition auf der virtuellen Platte anlegen, nochmals neu starten und dann mit "format c:" die virtuelle Platte formatieren.

    Keine Angst, die echte Festplatte bleibt unverändert. Alle Aktionen spielen sich in der unter 4.1) erzeugten Datei ab.

    Man kann übrigens auch ein Diskettenimage nehmen. Das wird erstellt über:

    Code:
    dd if=/dev/fd0 of=floppy.img
    Im obigen Befehl dann einfach "/dev/fd0" durch "floppy.img" ersetzen.


    4.3) Win98 Installation von CD starten

    Wie oben Bootdiskette einlegen, CD einlegen und folgenden Befehl eingeben:

    Code:
    qemu -fda /dev/fd0 -hda win98.img -boot a -cdrom /dev/sr0 -no-acpi
    "/dev/sr0" muss an den eigenen PC angepasst werden, eventuell kann auch "/dev/hdc" oder "/dev/cdrom" korrekt sein.

    Zur Installation selbst gibt es nichts weiteres zu sagen, sie entspricht 1:1 der Installation von Windows auf einem "echten" PC.

    Wer keine Bootdiskette hat, kann über die Boot-CD installieren mit:

    Code:
    qemu -hda win98.img -cdrom /dev/sr0 -boot d -no-acpi

    4.4) (Erster) Start nach der Installation

    "-boot a" und "-fda ..." sowie "-cdrom ..." können jetzt entfallen, zum Starten reicht also:

    Code:
    qemu -hda win98.img -no-acpi
    Eventuell benötigte Laufwerke können über den Qemu-Monitor (siehe 5) später bei Bedarf eingebunden werden, siehe Tipp unten.


    4.5) Installation einer Update Version

    Viele Windows CDs sind Updateversionen, die im Laufe der Installation nach der Vorversion fragen, um die Lizenz zu überprüfen. Das Vorhandensein der Lizenz ist in diesem sowohl physikalisch als auch lizenztechnisch Voraussetzung. Hier gibt es 2 Methoden:

    Vorversion installieren

    Die einfachste Variante. Z. B. für Win98:

    - zuvor Win95 installieren
    - Win95 starten
    - 98 CD einlegen und von Win95 aus das Update ausführen

    Die Vorversion muss nicht komplett eingerichtet werden (Hardware etc), es geht ja nur drum, dass beim Update nicht nach der Lizenz gefragt wird.

    Datenträgertausch während der Installation

    Auch wieder am Beispiel Win98:

    - Win98 Installation starten und ausführen bis zum Punkt der Lizenzabfrage, diese noch nicht starten
    - Im Qemu Fenster über [Strg]-[2] zum Qemu-Monitor wechseln (siehe 5)
    - Mit dem Kommando "eject ide1-cd0" die 98 CD freigeben, auswerfen
    - 95 CD einelegen und mit dem Kommando "change ide1-cd0 /dev/sr0" einbinden
    - Mit [Strg]-[1] zur Win-Installation wechseln
    - Lizenzprüfung starten und warten, bis abgeschlossen
    - Im Qemu Fenster über [Strg]-[2] zum Qemu-Monitor wechseln
    - Mit dem Kommando "eject ide1-cd0" die 95 CD freigeben, auswerfen
    - 98 CD einelegen und mit dem Kommando "change ide1-cd0 /dev/sr0" einbinden
    - Mit [Strg]-[1] zur Win-Installation wechseln und diese zu Ende führen

    Hier jeweils die Annahme, dass "/dev/sr0" das CD-Laufwerk ist. Hier bei Abweichungen das richtige Device eintragen. Falls diese Methode nicht funktioniert, kann man statt der CD auch Images vorher anlegen per dd-Befehl und diese als CD Laufwerk einbinden.

    Hinweis: Das Device für das Qemu-CD Laufwerk (hier "ide1-cd0") kann man durch "info block" herausbekommen.
    Geändert von stefan.becker (03.02.10 um 20:13 Uhr)

  6. #6
    Mod. FAQ/Howto/Emulation
    Registriert seit
    Sep 2000
    Beiträge
    17.397

    5) Tipps&Tricks im Umgang mit Gastbetriebssystemen wie z. B. Windows (98)

    Qemu-Monitor

    Im Qemu-Monitor kann man Befehle zur Verwaltung der virtuellen Maschine eingeben. Bsp. dazu weiter unten.

    Bis Qemu 0.60 ist der Qemu-Monitor die Befehlszeile, von der aus man Qemu gestartet hat.

    Ab Version 0.61 ist der Monitor standardmäßig im Qemu-Fenster untergebracht:

    [Strg]-[Alt]-[2]: schaltet vom Gast um auf den Qemu-Monitor
    [Strg]-[Alt]-[1]: schaltet vom Qemu-Monitor zurück zum Gast

    Die Tastenkombination muss also im Windows Gast eingegeben werden.

    Der Befehl "info" zeigt eine Übersicht über alle Kommandos des Qemu-Monitors. Beispiele sind weiter unten zu finden, zum Beispiel zum Einbinden und Auswerfen von Datenträgern.

    Über den Startparameter "qemu ... -monitor device" kann man festlegen, wo der Monitor erscheinen soll. Siehe dazu auch "man qemu". Mit "-monitor stdio" kann man z. B. bei Qemu mit Grafikfenster den Monitor auf die Konsole legen, von der aus man Qemu gestartet hat.

    Weitere Tastenkombinationen:

    [Strg]-[Alt]: Gibt die Maus wieder frei (Maus im Gast "gefangen", Kontrolle zurück an Host)
    [Strg]-[Alt]-[F]: Umschalten Qemu Fullscreen <=> Fenster


    Support für VirtIO

    Ab Qemu 0.10.0 lassen sich, sofern das Paket "libvirt" installiert ist, VirtIO Interfaces nutzen.

    Siehe auch http://wiki.qemu.org/download/qemu-doc.html, Kapitel "Invocation"

    Bsp.: "qemu ... -drive ..."

    Der Vorteil: Die Zugriffe laufen paravirtualisiert und damit schneller ab.

    Natürlich braucht man dafür entsprechende Treiber, die gibt es auf der KVM Homepage: http://sourceforge.net/projects/kvm/files/ (kvm-guest-drivers-windows)

    Weitere Tipps: http://www.carfax.org.uk/docs/qemu-virtio


    Höhere Bildschirmauflösung

    Standard:

    Es wird eine Cirrus Logic 5446 GL PCI-Grafikkarte emuliert. Der benötigte Treiber ist bei allen Windows-Versionen serienmäßig.

    Damit ist eine Auflösung bis zu 1024x768 bei 32 Bit bzw. 1280x1024 bei 16 Bit möglich.

    Alternative 1 "Super VGA":

    Alternativ ist eine VESA-Grafik möglich, dazu starten mit:
    Code:
    qemu ... -vga std
    So werden auch höhere Auflösungen unterstützt wie z. B. 1280x1024/1600x1200 bei 32 Bit.

    XP erkennt die Vesa-Grafik automatisch. Bei anderen Windows-Versionen wird ein spezieller VESA-Treiber benötigt. Z. B. der Scitech Display Doctor oder folgender Freeware-Treiber: http://bearwindows.boot-land.net/vbe9x.htm

    Wichtig: Im Gast muss natürllich ein entsprechender Monitortyp ausgewählt sein, z. B. Super-VGA 1280x1024, sonst klappt das ganze natürlich nicht.

    Alternative 2 "VMWARE Vga":

    Erforderlich sind eine Vmware-Tools-Iso-Datei (z. B. bei der Workstation oder Server dabei) und eine Qemu Version >= 0.91. Qemu wird jetzt so gestartet:
    Code:
    qemu ... -cdrom windows.iso -vga vmware
    Normalerweise wird beim Hochfahren die Grafikkarte automatisch erkannt und der Treiber vom ISO-CDROM gefunden. Falls nicht, eventuell über Systemsteuerung/Hardware das ganze manuell ausführen.


    Übergangslose Maus => USB HID / Tablet (1)

    Ab Qemu 0.81 kann eine HID-Maus emuliert werden (unabhängig von der tatsächlichen Maus):

    Code:
    qemu ... -usb -usbdevice tablet
    Der Gast muss natürlich USB und auch USB-HID Geräte unterstützen (ab Win98 SE).

    Der große Vorteil: Die Maus kann übergangslos zwischen Host und Gastfenster wechseln, wird also nicht mehr im Gast "gefangen". Bekannt ist das bei VMWARE über die VMWARE-Tools.

    Bei einem Windows Gast ist nichts weiter einzurichten.

    Für einen Linux Gast ist der "evtouch"-Treiber zu installieren:

    http://stz-softwaretechnik.com/~ke/t...n/evtouch.html

    Danach muss man herausfinden, welches Event-Interface man nehmen muss (Kommandozeile im Gast, root):
    Code:
    cat /proc/bus/input/devices
    Das gewünschte Interface ist "... QEMU USB TABLET". Steht dort "event3", kann man einen Eintrag in die "xorg.conf" als Ersatz für die bisherige Maus vornehmen, bei "Option Device" die zuvor bestimmte Schnittstelle eintragen:
    Code:
    Section "InputDevice"
            Identifier "Mouse1"
            Driver "evtouch"
            Option "Protocol" "usb"
            Option "Device" "/dev/input/event3"
            Option "DeviceName" "touchscreen"
            Option "SendCoreEvents"
            Option "CorePointer"
            Option "MinX" "0"
            Option "MinY" "0"
            Option "MaxX" "32767"
            Option "MaxY" "32767"
            Option "ReportingMode" "Raw"
    EndSection
    Nach einem Neustart des X-Servers sollte die übergangslose Maus einwandfrei funktionieren.


    Übergangslose Maus => VMMOUSE (2)

    Ab Qemu 0.91 ist eine VMWARE kompatible Maus (VMMOUSE) integriert.

    Dazu bei einem Linuxgast die "xorg.conf" editieren:
    Code:
    Section "ServerLayout"
     Identifier "Default Layout"
     Screen 0 "Screen0" 0 0
     InputDevice "Keyboard0" "CoreKeyboard"
     InputDevice "VMMouse" "CorePointer"
    EndSection
    
    Section "InputDevice"
     Identifier "VMMouse"
     Driver "vmmouse"
     Option "Device" "/dev/input/mice"
     Option "Emulate3Buttons" "yes"
    EndSection
    Bei einigen Distributionen ist der Treiber enthalten. Ansonsten gibt es eine freie Version der VMWARE Tools unter: http://open-vm-tools.sourceforge.net/

    Nach einem Neustart des X-Servers sollte die übergangslose Maus einwandfrei funktionieren.


    Mehr Speicher für virtuelle Maschine

    Code:
    qemu ... -m 256
    Die zusätzliche Einstellung "-m 256" weist dem virtuellen PC 256 MB Arbeitsspeicher zu. 128 MB sind die Voreinstellung.


    Internetzugang

    Ab der Version 0.60 ist ein DHCP-Modul enthalten. Der Internetzugang des Linuxhosts wird damit ohne weitere Einrichtungen in Windows verfügbar. Einfacher geht es wirklich nicht. Einfach die Hardwareerkennung starten, es wird dann eine Netzwerkkarte vom Typ "Realtec RTL 8029 PCI" erkannt. Damit kann der laufende Internetzugang des Linuxhosts einfach mitbenutzt werden.

    Weitere Einstellungen (von blub aus folgendem Thread http://www.linuxforen.de/forums/show...8&postcount=14):

    Client für Microsoft-Netzwerke
    Realtek RTL 8029
    TCP/IP Protokoll
    Dann Eigenschaften von TCP-IP klicken
    IP: Adresse automatisch beziehen
    Gateway: 10.0.2.2 (kein Muss, geht auch ohne)
    IE 6.0: Extras -> Internetoptionen -> Verbindungen -> Netzwerk -> Automatische Suche der Einstellungen.

    Qemu muss dazu mit den Parametern "-net nic -net user" gestartet werden:

    Code:
    qemu ... -net nic -net user

    Sound (SB16)

    Zunächst muss man Qemu mit dem Parameter -soundhw sb16 starten, weil Audio als Standard ausgeschaltet ist.

    Emuliert wird eine Creative SB16/AWE32-Karte.

    Typ: Soundblaster 16 oder AWE 32
    E/A-Bereich: 0220-022F
    IRQ: 5
    DMA 1: 01
    DMA 2: 05

    Falls die automatische Hardwareerkennung nicht funktioniert, einfach mal manuelles Hinzufügen probieren.

    Falls Qemu von einer Konsole aus gestartet wurde, erscheinen in der Konsole einige Warnungen "sb16-...". Einfach ignorieren, es sollte dennoch gehen.

    Bei Versionen vor 0.80 heisst der Parameter zur Audioaktivierung übrigens "-enable-audio".


    Sound (ES 1370)

    Ab Version 0.80 emuliert Qemu zusätzlich einen ES1370 Soundchip.

    Befehl: "qemu ... -soundhw es1370".

    Für Windows ME/2K/XP ist der Treiber bereits auf der Installations-CD.

    Treiber für Windows 9x: http://franklinschools.nls.k12.la.us...s/audiopci.zip

    Die Soundkarte sollte unter Windows nach korrekter Installation als "ENSONIQ AudioPCI" auftauchen.

    Sollte der Sound nach der Installation nicht direkt klappen, eventuell folgendes versuchen:
    - Win98 starten, alle Einträge aus "Audio, Video und Gamecontroller" entfernen
    - Neu starten mit "qemu ... -soundhw all"
    - SB 16 manuell einrichten
    - Neu starten, Treiber installieren
    - Neu starten mit "qemu ... -soundhw es1370"
    - In der Systemsteuerung die sb16-Einträge löschen


    Sound (AC97 / Intel Codec)

    Ab Version 0.10.0 emuliert Qemu zusätzlich einen AC97 Soundchip.

    Befehl: "qemu ... -soundhw ac97".

    Für Windows 2K/XP/Vista 32 ist der Treiber bereits auf der Installations-CD.

    Bei Vista 64 sollte der Realtek Treiber helfen: http://www.start64.com/index.php?opt...545&Itemid=108


    Sound-Alsatreiber

    Ab Qemu 0.80 ist auch die Soundausgabe per Alsa möglich. Zuvor ging das nur über OSS bzw. die OSS-Emulation in Alsa:

    Zunächst muss Qemu mit Alsa übersetzt werden. Dazu muss natürlich das "alsa-devel"-Paket installiert sein. Anschließend:

    Code:
    ./configure .... --audio-drv-list=alsa
    Dann wie gewohnt "make" und "make install".


    Audio-Optionen

    "qemu ... -soundhw sb16" (bzw . "es1370") => wählt den zu emulierenden Soundkartentyp
    "qemu -soundhw ?" => Ausgabe aller Audio-Optionen


    USB

    Ab Qemu 0.80 gibt es einen USB-Support. Emuliert wird ein Intel SB82371 UHCI-Controller.

    Zum hinzufügen von Geräten wird die Vendor-ID und die Product-ID des Gerätes gebraucht. Das bekommt man raus durch "cat /proc/bus/usb/devices". In der Ausgabe das entsprechende Gerät suchen.

    Dann Qemu so starten:

    Code:
    qemu ... -usb -usbdevice host:VendorID:ProductID
    Man kann auch zunächst nur mit "-usb" starten. Im Qemu-Monitor (Strg-Alt-2) kann man dann per "usb_add host:VendorID:ProductID" Geräte hinzufügen.

    Was an externen Geräten genau geht, muss man testen. Z. B. mein Scanner "Canon LIDE 20" funktioniert tatsächlich damit. Nach wie vor ist der Kauf linuxtauglicher Hardware die bessere Lösung.

    Wichtig: Es werden nur Geräte erkannt, die aktuell von Linux nicht benutzt werden. Es darf also aktuell kein Treiber geladen sein. Will man das Laden des Treibers beim EInstecken des Devices verhindern, muss die Hotplug-Blacklist bearbeitet werden (/etc/hotplug/blacklist).

    Weitere USB-Kommandos im Qemu-Monitor:

    - "info usbhost": zeigt am Host-USB-Controller angeschlossene Geräte
    - "usb_add host:x:y": Für x den Port, für y die Gerät-Nr. eintragen, ermitteln per "info usbhost"
    - "usb_del x.y": Gerät wieder freigeben, "x.y" ermitteln über "info usb"
    - "info usb": zeigt alle von Qemu genutzte USB-Geräte


    Datenaustausch Host<=> Gast

    Seit Version 0.61 kann man per SAMBA wie bei VMWARE den Datenaustausch zwischen Host und Gast vornehmen (siehe Kapitel 8). Alternativen ohne Samba:

    FAT-virtuell: Zugriff auf die virtuelle Festplatte (1)

    Ab Version 0.71 gibt einen es virtuellen FAT-Treiber in Qemu. Dadurch lassen sich Verzeichnisse des Linux-Hosts als FAT-Image in Qemu einbinden. Beispiel:

    Code:
    qemu ... -hdb fat:/tmp
    Damit steht das Host-Verzeichnis "/tmp" als Laufwerk "d:" im Windows Gast zur Verfügung. Der Zugriff ist in Qemu lesend.

    Das Verzeichnis kann auch als Diskette freigegeben werden:

    Code:
    qemu ... -fda fat:floppy:/tmp
    Für schreibenden Zugriff muss "-hdb fat:rw:/tmp" angegeben werden. In diesem Fall muss der User für das Verzeichnis und alle Dateien darin Schreibrechte haben. Das arbeitet aktuell noch nicht sehr stabil (Ab Version 0.80, Beta-Stadium).

    Siehe auch: http://wiki.qemu.org/download/qemu-doc.html / Kapitel "Virtual FAT disk images"


    MTOOLS: Zugriff auf die virtuelle Festplatte (2)

    Über die "mtools" (Standard bei aktuellen Distributionen) kann man vom Linux-Host auf die virtuelle Festplatte zugreifen.

    Folgende Zeilen müssen in die Datei "~/.mtoolsrc" eingefügt werden:

    Code:
    mtools_skip_check=1
    drive c: file="/home/stefan/qemu/win98.img" partition=1
    (Pfade entsprechend anpassen)

    Danach kann z. B. mit "mdir c:" der Inhalt der virtuellen Platte angezeigt werden, mit "mcopy datei c:" kann eine Datei auf die virtuelle Platte kopiert werden.


    SSH/SCP: Zugriff auf die virtuelle Festplatte (3)

    Eine weitere Möglichkeit ist die Netzwerkfähigkeit. Über SSH/SCP kann man vom Gast aus Dateien zum Host kopieren und auch von dort lesen.

    Hierzu kann man WinSCP verwenden (Tip von blub): http://winscp.net

    Das Programm kann direkt im Gast über den IE geladen und installiert werden.

    Als nächstes muss eine Windows Kommandozeile geöffnet werden, "ipconfig" eingeben. Die bei Gateway angegebene Adresse ist die Adresse zum Login. Als Username/Kennwort muss das normale Userlogin angegeben werden.

    Als nächstes öffnet sich eine Norton Commander ähnliche Oberfläche, man kann dann hin- und herkopieren wie man will.


    Image Mounten: Zugriff auf die virtuelle Festplatte (4)

    Eine weitere Möglichkeit besteht darin, vom Host aus die virtuelle Gastfestplatte zu mounten. Hierzu gibt es das Programm "lomount". Dieses ist bei vielen Distributionen im Paket "xen-tools" enthalten.

    Anwendung:

    Code:
    mkdir /mnt/qemu
    lomount -diskimage win98.img -partition 1 /mnt/qemu
    Danach hängt die virtuelle Platte wie ein normales Verzeichnis im Linux-Verzeichnisbaum unter "/mnt/qemu". Mit "umount /mnt/qemu" kann die Einbindung wieder gelöst werden. Beide Befehle brauchen übrigens Root-Rechte.


    Virtuelle Festplatte als Snapshot

    Durch Start mit "qemu ... -snapshot" werden Änderungen im Dateisystem des Gastes nicht direkt auf die virtuelle Platte geschrieben, sondern erst in temporäre Dateien.

    Bei normaler Beendung gehen die Änderungen verloren, drückt man hingegen [Strg]-[a]-[s], werden die Änderungen auf die virtuelle Platte geschrieben. Alternativ kann man im Qemu-Monitor den Befehl "commit" eingeben.

    Dieser Modus ist daher ideal zum Testen geeignet.


    Verwaltung von Blockdevices (CDROM, Floppy)

    Startet man Qemu über "qemu ... -cdrom /dev/sr0", muss eine CD eingelegt sein, ansonsten startet Qemu nicht. Also sollte Qemu im Normalfall ohne CD gestartet werden. Man kann das CDROM-Laufwerk jedoch nachträglich einbinden, wenn der Windows-Gast bereits läuft. Dazu gibt man im Qemu-Monitor folgendes ein:

    "info block" => Überblick über eingebundene Block Devices
    "change ide1-cd0 /dev/sr0" => CDROM wird eingebunden
    "eject ide1-cd0" => CDROM wird wieder freigegeben

    Das Device für das CD Laufwerk (hier "ide1-cd0" kann man durch "info block" herausbekommen.

    Entsprechend natürlich auch die Verwaltung von Floppys etc.


    Drucken

    Über das virtuelle Netzwerk lassen sich Drucker des Hosts oder aus dem Netzwerk einbinden. Alternativ geht auch folgender Workaround ohne Netzwerk:

    - Im Windows Gast einen Postscript fähigen Drucker einrichten:

    Typ: Apple Laserwriter, Anschluss: FILE:

    - Im Windows Gast drucken:

    Es kommt eine Eingabe zum Dateinamen, z. B. "c:\druck.ps" eingeben.

    - Druckdatei auf Linux Host ziehen über mtools (siehe oben) und drucken

    mcopy c:\druck.ps
    lpr druck.ps


    Zeit Host / Gast weicht ab

    Qemu starten mit "qemu ... -localtime", dann hat der Gast die gleiche Zeit wie der Host.


    CPU-Auslastung verringern

    WinDOSen verbrauchen auch CPU-Zeit, wenn inaktiv. Damit wird auch die Host CPU belastet, wenn man nichts im Gast macht. Dies betrifft also DOS/Win311, Win9x/ME.

    Lösung: Installation eines CPU-Coolers wie DOS-Idle, ANMHLT, Rain.

    Siehe auch: http://www.benchtest.com/cooler.html

    Nach einem Neustart verbraucht der emulierte PC bei Nichtbenutzung keine CPU-Zeit mehr.

    Alle NT basierenden Windows-Varianten (NT 4/2K/XP) haben das Problem nicht!


    Speichern / laden der virtuellen Maschine

    Seit 0.61 kann Qemu den Zustand der virtuellen Maschine speichern und beim Hochfahren einfach statt kompletten Reboot einfach ab der eingefrorenen Stelle weiterarbeiten.

    Zunächst einmal Qemu inkl. Windows Gast wie gewohnt starten. Dann mit [Strg][Alt][2] zum Monitor schalten und folgenden Befehl eingeben:

    Code:
    savevm win.sav
    quit
    Der Speicherinhalt und der Prozessorzustand werden in der Datei "win.sav" gespeichert.

    Zum erneuten Start folgendes eingeben:

    Code:
    qemu ... -loadvm win.sav
    Die virtuelle Maschine läuft jetzt an der gleichen Stelle weiter wie bisher.

    Soweit die Theorie, jetzt die Praxis:

    Das ganze arbeitet noch nicht perfekt. Beim Hochfahren gibt es häufig einen schwarzen Mauszeiger und beim Anklicken eines Programms startet stattdessen ein Kontextmenü. Einmal umschalten in den Qemu-Monitor und zurück hilft.


    Tuning des Gastbetriebssystems

    Die normalen Tuningtipps ala PC-Welt helfen natürlich auch bei Qemu mit Windows als Gast. Auf dieser Seite finden sich viele Tipps:

    http://www.windows-tweaks.info/


    serielle Schnittstelle nutzen (1)

    Ab Version 0.80 unterstützt Qemu die serielle Schnittstelle. Für den ersten Port Qemu so starten:

    Code:
    qemu ... -serial /dev/ttyS0

    serielle Schnittstelle nutzen (2)

    Qemu vor Version 0.80 unterstützt nicht direkt die serielle Schnittstelle, über den Umweg "Pseudoterminal" geht es aber doch.

    Zunächst muss das Programm "slsnif" installiert werden, das die Ausgabe des Pseudoterminals von Qemu an die serielle Schnittstelle weiterleitet. Download über:

    http://sourceforge.net/projects/slsnif/

    Installieren:

    Code:
    tar zxvf slsnif*
    cd slsnif*
    ./configure
    make
    make install
    Nun muss Qemu mit Ausgabe auf Pseudo Terminal gestartet werden:

    Code:
    qemu ... --serial pty
    In der Kommandozeile steht nun eine Pseudo Terminal Nr. in der Form "char device redirected to /dev/pts/5". Diese Nr. wird gebraucht für "slsnif". Im folgenden Beispiel wird Pseudo Terminal "5" mit Com 1 (ttyS0) verknüpft:

    Code:
    slsnif -p /dev/pts/5 /dev/ttyS0

    Das ist natürlich zu kompliziert, durch das folgende Startscript kann man das ganze automatisieren:

    Code:
    qemu ... -serial pty > /tmp/qemu.log 2>&1 &
    sleep 2
    slsnif -s 115200 -p `cat /tmp/qemu.log | grep /dev/pts | cut -c 27-38` /dev/ttyS0
    Der Parameter "-s" setzt die Baudrate. Das ganze jetzt noch
    in ein Script packen, z. B. "qemu.sh" und damit dann Qemu starten, fertig.

    Getestet habe ich das mit einem seriellen Modem, es wurde einwandfrei von der Hardwarekennung erkannt.

    Quelle: Qemu User Forum. Autor unbekannt, Ursprungspost durch Serverumzug verloren.


    Parallelport LPT

    Ab Version 0.80 kann Qemu den Parallelport nutzen:

    Code:
    qemu  ... -parallel /dev/parport0

    APM bei Win 2K&XP

    Der von Win 2K&XP normalerweise installierte APM-Treiber arbeitet nicht ganz korrekt mit Qemu zusammen. Dadurch wird Qemu beim Herunterfahren des Gastes nicht beendet, stattdessen erscheint die altbekannte Windows Meldung "Sie können das System jetzt ausschalten".

    Lösen lässt sich das durch Nachinstallieren eines Treibers für die "herkömmliche NT-APM-Unterstützung":

    Vorgehensweise 2K:

    - Systemsteuerung
    - Systemeigenschaften / Hardware / Hardware-Assistent
    - Gerät hinzufügen bzw. Problem beheben
    - Neues Gerät hinzufügen
    - Nein, die Hardwarekomponenten selbst in der Liste auswählen
    - Herkömmliche NT APM-Unterstützung

    Vorgehensweise XP:

    - Systemsteuerung
    - Hardware / Weiter
    - Ja, die Hardware wurde bereits angeschlossen
    - Neue Hardware hinzufügen
    - Hardware manuell aus einer Liste wählen
    - Herkömmliche NT APM-Unterstützung

    Bei den WinDOSen (9x, ME) arbeitet das Abschalten des virtuellen PCs hingegen korrekt.


    Absturz beim Hochfahren des Gastes durch ACPI-Probleme

    Falls es Probleme geben sollte, kann man versuchen, Qemu auch ohne ACPI zu starten:

    Code:
    qemu ... -no-acpi
    Bei Windows Gästen ist dies derzeit die beste Wahl.

    In der Systemsteuerung des Gastes sollte "Standard-PC" als Profil eingestellt, nicht "API-PC" (Systemsteuerung / System / Hardware / Geräte Manager / Computer).

    Umstellen kann man das so:

    - Auf ACPI-PC gehen (siehe oben)
    - Eigenschaften / Treiber / Treiber aktualisieren / Treiber manuell aus Liste wählen / Standard PC
    - Falls es Probleme gibt, ohne KVM bzw. im abgesicherten Modus starten
    Geändert von stefan.becker (03.02.10 um 20:32 Uhr)

  7. #7
    Mod. FAQ/Howto/Emulation
    Registriert seit
    Sep 2000
    Beiträge
    17.397

    9) Anlegen und Verwaltung von Disk-Images

    9.1) Gegenüberstellung echtes Device / Diskimage

    Wie VMWARE kann Qemu grundsätzlich mit 2 verschiedenen Arten von "Festplatten" arbeiten:

    1) Echtes Device

    Qemu wird z. B. mit "qemu -hda /dev/hda1" gestartet. Damit wird das in der Partition "hda1" (IDE-Master am 1. Kanal, primäre Partition) installierte Betriebssystem gestartet.

    Ich rate hiervon ab:

    Nachteile:

    - Die Verwaltung unterschiedlicher Hardwareprofile im gestarteten Windows ist notwendig, weil Qemu eben nur Hardware emuliert, und das Ergebnis ist nicht die im Original Hardware Profil verwaltete Hardware. Beispiel: Aus einer Terratec Soundkarte wird durch die Emulation eine SB 16. Also ist im Original Hardwareprofil die Terractec, im Qemu-Profil die SB 16.
    - Es besteht die Gefahr der "Datenschrottung". Man muss höllisch aufpassen, wird "hda1" in Qemu gestartet, darf die Partition nicht gleichzeitig in Linux gemountet sein, sonst schreiben 2 Betriebssysteme parallel auf die Partition, was unweigerlich zum Datenverlust führt.

    Vorteile:

    - Keine 2. Installation nötig, was aber bei heutigen Plattengrößen wohl keine Rolle mehr spielen sollte.

    Fazit: Nice to have, aber Finger davon!


    2) Diskimage

    Das Konzept der virtuellen Platte / Diskimage entspricht im wesentlichen der Vorgehensweise bei VMWARE und Bochs. Es ist eine große Containerdatei, die wie eine Festplatte angesprochen werden kann.

    Beispiel: Eine Datei "win98.img" liegt unter "/tmp" und soll für Qemu als virtuelle Platte verwendet werden. Qemu wird dann gestartet mit "qemu -hda /tmp/win98.img".

    Das Gastbetriebssystems merkt nichts davon, es hält das Diskimage für eine "echt" Festplatte, die wie das Original zur Benutzung partitioniert bzw. formatiert werden muss.

    Vorteile:

    - Abgeschottetes System ohne Auswirkung auf das Dateisystem des Hosts. Keine Gefahr der "Datenschrottung".
    - Keine umständliche Verwaltung mehrerer Hardwareprofile.
    - Die Installation ist auf andere Rechner übertragbar. Die emulierte Hardware ist ja immer gleich. Also einfach das Diskimage einmalig anlegen und dann auf beliebige Recher kopieren und dort mit Qemu starten, fertig. Die notwendige Anzahl freier Lizenzen des Gastbetriebssystems muss natürlich dabei beachtet werden.

    Nachteile:

    - 2. Installation notwendig, aber wie oben wohl kein Problem bei heutigen Plattengrößen.

    Fazit: Genau das richtige, gefahrlos und flexibel in der Verwaltung.


    9.2) Anlegen eines Diskimages, verschiedene Arten

    Qemu bringt von Haus aus das Tool "qemu-img" mit zum Anlegen eines Diskimages. Mit "man qemu-img" erhält man eine ausführliche Hilfe, daher hier nur kurz 2 Beispiele:

    Code:
    qemu-img create -f raw winnt.img 1000M
    Legt im aktuellen Verzeichnis eine 1000 MB (ca. 1 GB) große Datei an. Dieses raw-Image hat von vorneherein eine feste Größe im Gegensatz zum qcow-Image.

    Code:
    qemu-img create -f qcow winxp.img 10GB
    Legt ein Image an, das maximal 10 GB groß werden kann. Zunächst ist die Datei nur einige KB groß. Aber bei jedem Schreibzugriff (also z. B. der Installation des Gastbetriebssystems) wächst das Image, bis die Maximalgröße von 10 GB erreicht ist

    Vorteil qcow gegenüber raw: Nicht sofort viel Speicherplatz belegt.
    Nachteil qcow gegenüber raw: Etwas schlechtere Performance, weil bei jedem Schreibzugriff erst noch die Datei vergrößert wird.

    Wer auch andere Emulatoren testen will wie z. B. Bochs, sollte "RAW" nehmen, weil dieses Format kompatibel ist zwischen den beiden Emulatoren.


    9.3) Verwaltung von Diskimages

    Im folgenden einige Beispiele, um die Funktionen des "qemu-img" Befehls aufzuzeigen. Für alle Funktionen und Hilfe entweder "man qemu-img" (ausführlich) oder "qemu-img --help" (kurz).

    Info zu einem Image

    Code:
    qemu-img info winnt.img
    Zeigt Infos an zum Image wie Größe und Format.


    Diskimage konvertieren

    Code:
    qemu-img convert -f raw nt4.img -O qcow -c nt4qcow.img
    Das Diskimage "nt4.img" im RAW-Format wird ein QCOW-Image "nt4qcow.img" umgewandelt.

    Der Parameter "-c" ist optional für eine Komprimierung des Zielimages anzugeben. Laut Hilfe ist die Komprimierung "read-only". Bedeutet: Das Zielimage ist zunächst komprimiert. Neue Daten werden aber wieder umkomrimiert geschrieben. Das ganze würde sich also lohnen, um nach der Installation von Software ein neues Image zu erzeugen, so dass die Sektoren der Software und des Betriebssystems komprimiert werden. Und diese Sektoren ändern sich in der Regel nicht, so dass man ein wesentlich kleineres Image erhält.

    Ein weiteres Argument für eine Konvertierung des qcow-Images ist das Verhalten dieser Art generell. Das Image wird im Laufe der Zeit größer, aber freier Platz wird nicht immer freigegeben. Durch eine Konvertierung kann man eine neue, dann aber zusammenhängende und damit kleinere Disc neu erzeugen.

    Mit diesem Befehl kann ein VMWARE-Image in ein Qemu-Image umgewandelt werden. Auch der umgekehrte Weg ist möglich.

    Beim Konvertieren bleibt das Quellimage übrigens unverändert.


    Image shrinken mit Qemu Tools

    Ein direktes Shrinken gibt es nicht, nur den Umweg über das Konvertieren. Bsp.:
    Code:
    mv windows.img tmp.img
    qemu-img convert tmp.img -O qcow -c windows.img
    rm tmp.img
    Für den besten Erfolg sollte bei Windows Gästen zuvor die Datenträgerbereinigung aufgerufen werden.

    Außerdem sollte man freien Speicherplatz im Image mit Nullen überschreiben. Dafür gibt es folgende Tools:

    a) Windows Gast

    http://technet.microsoft.com/en-us/s.../bb897443.aspx

    Im Gast folgenden Befehl starten:
    Code:
    sdelete -c c:
    b) Linux Gast / ext2 und ext3

    Im Gast muss das Tool "zerofree" installiert werden: http://intgat.tigress.co.uk/rmy/uml/index.html

    Das Tool entpacken und mit "make" übersetzen. Dann mit "init 1" in den Wartungsmodus gehen. Den Befehl "df" aufrufen, er zeigt die Partitionen an. Je Partition (Bsp.):
    Code:
    umount /dev/sda1
    zerofree /dev/sda1
    Dann den Gast ganz herunterfahren (init 0) und das Shrinken aufrufen wie bei Windows Gast.


    Diskimages verschlüsseln

    Code:
    qemu-img convert -f raw nt4.img -O qcow -e nt4qcow.img
    Umwandlung wie oben. Durch den zusätzlichen Parameter "-e" wird das Zielimage verschlüsselt. Man muss zunächst ein bis zu 16 Zeichen langes Kennwort eingeben. Beim Starten von qemu muss man dann im Qemu-Monitor wiederum das Kennwort eingeben, um darauf zuzugreifen.

    Ich habe es mit NT4 probiert. Allerdings bootet das Image nicht, während eine verschlüsselte Datenpartition problemlos ging.


    Snapshot eines Diskimages

    Wie VMWARE bietet Qemu eine Snapshot-Funktion.

    "qemu -hda ...-snapshot" startet Qemu im Snapshot-Modus. Damit werden Änderungen im Dateisystem erstmal nur zwischengepuffert.

    Wenn die Änderungen gespeichert werden sollen, muss man mit [Strg]-[Alt]-[2] zum Qemu-Monitor wechseln und dort "Commit" eingeben. Die Änderungen werden dann permanent im Diskimage aufgenommen.

    Sollen die Änderungen hingegen verworfen werden, muss man Qemu nur beenden ohne den Befehl Commit und einfach neustarten.

    Das ganze ist ideal zum Test einer Software-Installation. Starten mit "-snapshot" und Software installieren. Läuft das ganze, "Commit" eingeben und die neu installierte Software ist dauerhaft gespeichert. Geht es nicht, einfach Qemu beenden und neu starten, das Diskimage ist unverändert.
    Geändert von stefan.becker (03.02.10 um 20:20 Uhr)

  8. #8
    Mod. FAQ/Howto/Emulation
    Registriert seit
    Sep 2000
    Beiträge
    17.397

    10) GUIs für QEMU

    Was jetzt noch fehlt, ist eine nette GUI zum Einrichten und Starten der virtuellen PCs.


    Qemulator

    Python/GTK/Glade basierend.

    Homepage: http://www.heise.de/software/download/qemulator/39654


    QtEmu

    QT4-basierend.

    Homepage: http://qtemu.org/
    KDE-Apps: http://kde-apps.org/content/show.php?content=50780


    AQemu

    QT4-basierend.

    http://sourceforge.net/projects/aqemu/
    Geändert von stefan.becker (03.02.10 um 20:19 Uhr)

  9. #9
    Mod. FAQ/Howto/Emulation
    Registriert seit
    Sep 2000
    Beiträge
    17.397

    11) Qemu unter Windows

    Qemu gibt es auch für Windows. Z. B. könnte man so einen Linux Gast unter Windows parallel betreiben. Hier einige Links zum Thema:

    Download (Windows-Installer / Binaries)

    - http://homepage3.nifty.com/takeda-toshiya/


    Qemu selbst übersetzen

    http://wiki.qemu.org/download/qemu-doc.html#compilation / Kapitel "Compilation from the sources"


    Qemu starten (Tipp von baumgartner)

    1) Unter Windows müssen die Verweise auf das Bios vorhanden sein, also z. B.: -L "..\qemu"
    2) Die Dateinamen müssen in der Windowsshell mit Hochkommas umklammert werden.

    Ein fertiger Startbefehl sieht dann wie folgt aus:

    Code:
    qemu.exe -L "..\qemu" -hda "debian.img" -cdrom "debian_sarge_dvd1.iso" -user-net -boot d

    Diskimage anlegen

    Der Befehl lautet hier: "mkqemuimage.exe".
    Geändert von stefan.becker (03.02.10 um 20:17 Uhr)

  10. #10
    Mod. FAQ/Howto/Emulation
    Registriert seit
    Sep 2000
    Beiträge
    17.397

    12) Qemu und VNC

    Ab Qemu 0.81 ist ein VNC-Server integriert.

    Beim Start von Qemu wird der Parameter "-vnc X" (X=Display-Nr., z. B. "1") angehängt. Qemu läuft dann im Hintergrund, startet also kein eigenes Fenster mit Grafikausgabe.

    Der Parameter "-usbdevice tablet" emuliert zusätzlich eine HID-USB-Maus. Ohne diesen Parameter hat die Maus einen Nachlaufeffekt.

    Der Parameter "-monitor stdio" setzt den Qemu-Monitor auf die Konsole, von der aus Qemu gestartet wurde. Im VNC-Viewer geht das noch nicht, daher dieser Weg.

    Code:
    qemu ... -vnc localhost:1 -usb -usbdevice tablet -monitor stdio
    An einem beliebigen Rechner im Netz muss dann ein VNC-Viewer gestartet werden für die grafische Ausgabe. Der VNC-Viewer muss mit der IP des Rechners, auf dem Qemu läuft, gestartet werden. Außerdem muss die beim Qemu-Start angegebene Display-Nr. angegeben werden.

    Code:
    vncviewer localhost:1
    Der Befehl "vncviewer" ist z. B. bei Fedora im Paket "vnc" (yum install vnc).


    Was erreicht man dadurch?

    Die grafische Ausgabe über VNC kann auf einem anderen Rechner erfolgen. Dadurch kann z. B. Qemu als besonderer Dienst auf einem Server starten und von einem anderen PC aus überwacht werden.


    Links:
    - VNC-Wiki: http://de.wikipedia.org/wiki/Vnc
    - vnc-Pakete: http://rpmseek.com/rpm-pl/vnc.html?h...wer:FN:0:0:0:0
    Geändert von stefan.becker (22.11.09 um 00:29 Uhr)

  11. #11
    Mod. FAQ/Howto/Emulation
    Registriert seit
    Sep 2000
    Beiträge
    17.397

    13) KVM - Kernel based Virtual Machine

    Was ist KVM?

    KVM steht für Kernel based Virtual Machine.

    KVM besteht aus 2 Grund-Komponenten:

    - einem Kernelmodul zur Beschleunigung bzw. als Hypervisor
    - einem virtuellen PC auf der Basis von Qemu

    Ein moderner Prozessor mit Unterstützung von Virtualisierungstechniken (Intel VT, AMD Pacifica) ist dabei Grundvoraussetzung.

    Der Prozessor muss Intel VT oder AMD Pacifica unterstützen. Dies kann man mit folgendem Befehl prüfen:
    Code:
    egrep '^flags.*(vmx|svm)' /proc/cpuinfo
    Falls der Prozessor ausreichend ist, gibt der Befehl eine Zeile aus wie:
    Code:
    flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow up pni cx16 lahf_lm svm cr8legacy ts fid vid ttp tm stc
    Ansonsten erfolgt keine Ausgabe.

    Weiteres siehe FAQ: http://www.linux-kvm.org/page/FAQ

    Das Kernelmodul von KVM ist ab Kernel 2.6.20 fester Bestandteil des Linux Kernels.


    13.1) Nutzen des Kernelmoduls im Standard-Qemu

    Voraussetzungen:
    - Aktuelle Distribution, Kernel >= 2.6.20 (getestet mit Opensuse 11.2)
    - Aktuelles Qemu >= 0.11.x (falls selbst übersetzt => "./configure ... --enable-kvm")

    Der Zugriff auf KVM erfodert entsprechende Rechte. Einfache Lösung: Qemu und Befehle zum Laden der Module (modprobe, rmmod) in die Date "/etc/sudoers" eintragen.

    Qemu-Start:
    Code:
    sudo /sbin/modprobe kvm
    sudo /sbin/modprobe kvm_amd
    sudo qemu ... --enable-kvm
    sudo /sbin/rmmod kvm_amd
    sudo /sbin/rmmod kvm
    Statt "kvm_amd" bei einem Intel-Prozessor "kvm_intel" nehmen.


    13.2) KVM als Qemu-Ersatz

    Alternativ kann man auch KVM komplett installieren, das beinhaltet dann sowohl das Kernelmodul als auch ein angepasstes Qemu. Das Standard-Qemu muss dann also nicht installiert werden.

    Aufgrund der QEMU-Basis können mit Qemu angelegte Images unter KVM 1:1 weiterverwendet werden. Alles in den vorherigen Kapiteln zu Qemu gesagte gilt auch 1:1 für KVM.

    Ansonsten ein paar Links, in den Howtos auf der Homepage ist die genaue Vorgehensweise zur Installation beschrieben.

    - Releases: http://www.linux-kvm.org/page/Downloads
    - SVN/Entwicklerversion: http://www.linux-kvm.org/page/Code
    - Howto allgemein: http://www.linux-kvm.org/page/HOWTO

    GUIs ("Data Center Management")

    OpenQRM mit Xen Plugin: http://www.openqrm.com/
    Convirt: http://gnomefiles.org/app.php/ConVirt

    Diverse Tools

    "Xenner" startet paravirtualisierte Linuxkernel mit KVM: http://kraxel.fedorapeople.org/xenner/

    Weitere Links

    Homepage: http://www.linux-kvm.org

    Mailinglisten: http://www.linux-kvm.org/page/Lists%2C_IRC

    Beschreibung auf Wikipedia: http://de.wikipedia.org/wiki/Kernel-...irtual_Machine
    Geändert von stefan.becker (22.11.09 um 00:56 Uhr)

Ähnliche Themen

  1. Xen + Windows 2000/XP/Vista - Erfahrungen?
    Von -hanky- im Forum Virtuelle Maschinen und Emulatoren
    Antworten: 44
    Letzter Beitrag: 11.06.07, 13:09
  2. XEN, Qemu & Co
    Von eBoy im Forum Virtuelle Maschinen und Emulatoren
    Antworten: 7
    Letzter Beitrag: 05.01.07, 05:43
  3. Qemu <-> VMware Vergleich Vorteile / nachteile?
    Von smartysmart34 im Forum Virtuelle Maschinen und Emulatoren
    Antworten: 11
    Letzter Beitrag: 12.10.06, 09:54
  4. qemu 0.7
    Von JDieskau im Forum Neue Programme/Versionen
    Antworten: 18
    Letzter Beitrag: 10.05.05, 23:14
  5. HowTo: qemu und OpenBSD 3.6
    Von sirmoloch im Forum Hier Suchen und Finden, Links, Tutorials
    Antworten: 1
    Letzter Beitrag: 17.01.05, 17:08

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •