qemu-kvm & libvirtHauptseite | Über | Hilfe | FAQ | Spezialseiten | Anmelden

Druckversion | Impressum | Datenschutz

qemu convert, qemu virtualbox, vmdk, bochs, Images anderer Virtualisierer und Emulatoren, Physical-to-Virtual, V2V-Migration

(Link zu dieser Seite als [[QEMU-KVM-Buch/ Speichermedien/ Festplatten-Images anderer Virtualisierungssoftware]])

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


ReactOS im VMware-Player.
ReactOS im VMware-Player.

Inhaltsverzeichnis

[bearbeiten] Images anderer Virtualisierer und Emulatoren

QEMU und KVM können virtuelle Maschinen von Images vieler anderer Virtualisierer und Emulatoren booten. Beim Booten von fremden Images ist zu beachten, dass andere Virtualisierungslösungen andere Hardware emulieren. Man muss unter Umständen entsprechende Treiber im Gast-System installieren. Die Umwandlung von virtuellen Maschinen wird auch als V2V-Migration bezeichnet.

[bearbeiten] QEMU und KVM

Da bei der Kernel-based Virtual Machine ein QEMU die Hardware emuliert, sind die Images untereinander kompatibel. Mit QEMU lassen sich virtuelle Maschinen für die Kernel-based Virtual Machine anlegen. Dies ist damit auch auf Hardware möglich auf der die Kernel-based Virtual Machine nicht lauffähig ist. Es können mit der Kernel-based Virtual Machine aber nur Gast-Systeme mit x86-Architektur gestartet werden. Weiterhin ist auf die Version des von der Kernel-based Virtual Machine verwendeten QEMU zu achten, da bei unterschiedlichen QEMU-Versionen die emulierten Hardware-Komponenten abweichen können.

Host ~$ qemu -hda Platte.img
Host ~$ kvm  -hda Platte.img

[bearbeiten] VirtualBox

Download: http://www.virtualbox.de/wiki/Downloads

VirtualBox der Firma Oracle arbeitet nach dem Prinzip der Native Virtualization. Das Konvertieren von Images ist über das raw-Format möglich. Dazu kann ein Tool von VirtualBox benutzt werden. Hier ein Beispiel unter Linux für ein Konvertieren eines QEMU-/KVM-Images in das VirtualBox-Format.

Host ~$ qemu-img convert Platte.img -O raw Platte-raw.img
Host ~$ VBoxManage internalcommands converttoraw Platte-hd.vdi Platte-raw.img

Ab Version 2.1 unterstützt VirtualBox die Disk-Image-Formate VMDK (VMware) und VHD (Microsoft) inklusive Snapshots. Ab QEMU 0.12 kann mit dem Tool qemu-img das Format vdi konvertiert werden.

[bearbeiten] VMware Workstation

Website: http://www.vmware.com/de/products/ws

VMware Workstation ist ein kostenpflichtiges Produkt und arbeitet nach dem Prinzip der Native Virtualization. QEMU und KVM können virtuelle Maschinen mit den Image-Dateien von VMware-Workstation bis Version 4 direkt starten.

Host ~$ qemu vmware-hd.vmdk
Host ~$ kvm  vmware-hd.vmdk

VMware kennt grundsätzlich zwei Formate für virtuelle Festplatten: flat und sparse. Ein Image vom Typ flat ist eine Datei, die die gesamte Größe der Festplatte umfasst. Eine 10-GByte-Festplatte wird dabei durch eine ebenfalls 10 GByte große Datei repräsentiert. Ist das Image dagegen vom Typ sparse, wird nur der tatsächlich belegte Speicherplatz der Festplatte in der Datei abgebildet. Große virtuelle Festplatten werden unter VMware-Produkten oft auf mehrere Image-Dateien (.vmdk) mit einer jeweiligen maximalen Größe von zwei GByte aufgeteilt. Dazu wird noch eine weitere Datei (.vmdk) angelegt, die allerdings Meta-Daten enthält. Am besten lässt sich die Struktur einer virtuellen Festplatte für VMware am Beispiel einer virtuellen Maschine mit einer 8-GByte-Festplatte nachvollziehen.

Fall 1: Die gesamte Festplatte ist in einer Image-Datei untergebracht, zum Beispiel win.vmdk. Sie enthält alle nötigen Daten und lässt sich einfach für andere Virtualisierungslösungen konvertieren. Wurde allerdings in VMware ein Snapshot angefertigt, enthält diese Datei lediglich den Zustand des Dateisystems bis zum Zeitpunkt des Snapshots. Alle darauf vorgenommenen Änderungen werden in einer weiteren Datei (win-000001.vmdk) gespeichert. Eventuell vorhandene weitere Snapshots werden hochgezählt (win-000002.vmdk, win-000003.vmdk ...). Vor der Konvertierung müssen die Daten der Basisdatei und der Snapshots wieder zusammengefügt werden.

Fall 2: Die Imagedatei ist in Slices aufgeteilt. In diesem Beispiel sind neben der Datei win.vmdk zusätzlich die Dateien win-s001.vmdk bis win-s005.vmdk vorhanden. win.vmdk enthält Meta-Daten zum Aufbau der virtuellen Festplatte:

# Disk DescriptorFile
version=1
CID=793c1936
parentCID=ffffffff
createType="twoGbMaxExtentSparse"
# Extent description
RW 4192256 SPARSE "win-s001.vmdk"
RW 4192256 SPARSE "win-s002.vmdk"
RW 4192256 SPARSE "win-s003.vmdk"
RW 4192256 SPARSE "win-s004.vmdk"
RW 8192 SPARSE "win-s005.vmdk"
#The Disk Data Base
#DDB
ddb.virtualHWVersion = "4"
ddb.geometry.cylinders = "1024"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.adapterType = "buslogic"

Auch in diesem Fall sind natürlich noch Snapshots möglich. Dann liegen zusätzlich die Dateien win-000001.vmdk und win-000001-s001.vmdk bis win-000001-s005.vmdk vor. Auch hier sind in win-000001.vmdk nur die Meta-Daten enthalten. Um daraus nutzbare Images für QEMU oder KVM zu erzeugen, dient das Tool vmware-vdiskmanager aus dem Lie­ferumfang des frei verfügbaren VMware-Servers (http://www.vmware.com/products/server/). Es wird sowohl unter Microsoft Windows als auch unter Linux auf der Befehlszeile aufgerufen.

~# vmware-vdiskmanager -r win-000001.vmdk -t 0 win-export.vmdk

Dieser Befehl konvertiert die Datei win-000001.vmdk in die Exportdatei win-export.vmdk. In diesem Fall wird eine komplette Datei, ausgehend vom ersten Snapshot, vom Typ sparse (-t 0) erzeugt. Diese Exportdatei kann von QEMU oder KVM verwendet werden. Auch die Nutzung mit Parallels Desktop ist jetzt zum Beispiel möglich. Dazu wird die Datei mit dem Parallels Transporter konvertiert. Zur Umwandlung der VMware-Konfigurationsdateien (.vmx) in die Konfigurationsdateien von libvirt dient das Tool vmware2libvirt.

[bearbeiten] Anlegen von virtuellen Maschinen für den VMware Player

Download: http://www.vmware.com/download/player/

Der kostenlose VMware Player bietet ab Version 3 die Möglichkeit virtuelle Maschinen zu generieren. Alternativ lassen sich virtuelle Maschinen mit QEMU anlegen. Als erstes ist für die virtuelle Maschine ein Verzeichnis zu erzeugen und in dieses Verzeichnis zu wechseln. In der virtuellen Maschine soll ReactOS laufen.

Host ~$ mkdir ReactOS-VMPlayer
Host ~$ cd ReactOS-VMPlayer

Mit qemu-img wird ein vorhandenes QEMU-/KVM-Image von ReactOS konvertiert.

Host ~$ qemu-img convert ReactOS.img -O vmdk ReactOS.vmdk

Die virtuelle Maschine für den VMware-Player benötigt neben der virtuellen Festplatte eine Konfigurationsdatei (.vmx). Es gibt im Internet kostenlose Tools, die dabei helfen diese Datei zu generieren:

Als Beispiel soll hier EasyVMX dienen. Man gibt die notwendigen Angaben zur Konfiguration der virtuellen Maschine in das Webformular ein und erhält als Ausgabe den Inhalt der Konfigurationsdatei. Zuerst legt man den Namen der virtuellen Maschine fest und wählt die Art des Gast-Systems aus. Danach definiert man die Größe des Arbeitsspeichers und die Anzahl der virtuellen CPUs. Im Abschnitt Description werden Kommentare zur virtuelle Maschine eingegeben. Unter Network Configuration ist die virtuelle Netzwerkkarte Ethernet0 bereits aktiviert. Bei der Auswahl von NAT wird ein separates Subnet gebildet, das über Network Address Translation mit dem Netzwerk des Hosts kommuniziert. Das Device vlance wird von den meisten Betriebssystemen unterstützt. Hinter diesem Device verbirgt sich eine Netzwerkkarte auf Basis des AMD PCNET32 Ethernet Controllers. Im Abschnitt Disk Configuration definiert man die virtuellen Floppies, CD/DVD-Laufwerke und Festplatten. Die Floppy ist in diesem Beispiel zu deaktivieren und AutoDetect zu konfigurieren. Das erste CD-Laufwerk ist zu aktivieren und AutoDecect zu konfigurieren. Die Größe der Image-Datei ist für dieses Beispiel auf 500 MByte zu setzen. Alle Optionen unter Sound and I/O-Ports Configuration werden in diesem Beispiel deaktiviert.


Virtual Machine Name: ReactOS
Select GuestOS: Windows XP Home Edition
Memory Size: 128 MB
# of CPUs: 1 CPU
Virtual Machine Description: ReactOS
Virtual Machine Long Name: ReactOS
Virtual Machine URL: http://www.reactos.org
Device Enabled Connection Type VirtualDevice
Ethernet0: x NAT vlance
Device Enabled Floppy Device
Floppy Disk Drive: Auto Detect
Device Enabled File Name Device Type
CDROM #1 x Auto Detect
Device Enabled Disk Size SCSI? Device Type Disk Mode
Disk #1: x 500MB Disk Image (.vmdk) Persistent

Anschließend klick man auf das Button Create Virtual Machine. Die Ausgabe kopiert man in einen Texteditor und speichert diese Konfiguration als vmx-Datei in dem angelegten Verzeichnis ab. In diesem Beispiel soll diese Datei ReactOS.vmx heißen. Es kann der VMware-Player mit dieser vmx-Datei gestartet werden.

[bearbeiten] Parallels Desktop/Workstation

Website: http://www.parallels.com

Parallels Desktop ist eine kommerzielle Virtualisierungssoft­ware, die unter Mac OS X verfügbar ist. Unter Microsoft Windows und Linux wird die Software als Parallels Workstation angeboten. Parallels nutzt ein proprietäres, nicht offen gelegtes Format für seine virtuellen Festplatten. Bei diesem Standard-Format wächst das Image mit zunehmendem Inhalt des Dateisystems bis zum festgelegten Maximalwert. Es wird aber auch ein raw-Format unterstützt. Um Images von Parallels unter QEMU oder KVM zu nutzen, müssen diese im raw-Format vorliegen. Die Images besitzen immer die Dateiendung .hdd. Es lässt sich der Typ unter Unix/Linux mit dem Befehl file ermitteln.

Host ~$ file *.hdd
w2k3.hdd:        data
w2k3_plain.hdd:  x86 boot sector

In der raw-Datei, in diesem Beispiel die Datei w2k3_plain.hdd, erkennt das Tool file einen Bootsektor. Diese raw-Datei kann mit qemu-img umgewandelt werden. Die Datei w2k3.hdd enthält nichts erkennbares und wird daher als data qualifiziert. Diese Datei muss erst in eine raw-Datei konvertiert werden. Dazu verwendet man die Parallels Image Tools.

Host ~$ qemu-img convert w2k3_plain.hdd -O qcow2 w2k3.qcow2

Der Rückweg von QEMU/KVM nach Parallels funktioniert ebenfalls. Dazu muss das Image in eine raw-Datei umgewandelt werden. Diese wird entweder direkt von Parallels eingebunden oder vorher mit den Parallels Image Tools in ein Dateiformat mit variabler Größe gewandelt.

Host ~$ qemu-img convert w2k3.qcow2 -O raw w2k3_plain.hdd

[bearbeiten] Xen

Website: http://www.cl.cam.ac.uk/research/srg/netos/xen/

Xen ist ein Typ-1-Hypervisor, der direkt auf der x86-Hardware läuft. Xen-Images im raw-Format können in einer virtuellen Maschine unter QEMU oder KVM eingebunden werden. Zu beachten ist dabei, dass diese Images jeweils nur eine Partition enthalten. Im folgenden Beispiel wird ein Image eines Xen-Gast-Systems als zweite Festplatte eingebunden.

Host ~$ qemu -hda Ubuntu.img -hdb xen-gast.disk

QEMU- oder KVM-Images können für Xen nutzbar gemacht werden. Zuerst muss man dazu das Image in das raw-Format konvertieren.

Host ~$ qemu-img convert hd.img -O raw hd.raw

Da die virtuellen Festplatten von QEMU und KVM meist aus mehreren Partitionen bestehen, muss die gewünschte Partition extrahiert werden. Dazu werden mit fdisk die Partitionen ermittelt.

Gast ~# fdisk -lu hd.raw
Units = sectors of 1 * 512 = 512 bytes
Device Boot Start      End   Blocks Id System
hd1      *     63    32129   16033+ 83 Linux
hd2         32130   305234  136552+ 82 Linux swap
hd3        305235 10474379 5084572+ 83 Linux

Um eine Partition zu extrahieren, muss man die Blockanzahl berechnen, die Formel dafür lautet: Ende – Start + 1. In diesem Beispiel soll die dritte Partition gelesen werden. Es ergibt sich eine Blockanzahl von 10474379 - 305235 + 1 = 10169145. Mit diesen Werten und dem Befehl dd wird die dritte Partition extrahiert. Der berechnete Wert ergibt den Parameter count und der Startwert ergibt den Parameter skip.

Host ~# dd if=hd.raw of=xen.img bs=512 skip=305235 count=10169145 

Mit xenner (http://kraxel.fedorapeople.org/xenner/) ist es möglich Xen-Gast-Systeme unter der Kernel-based Virtual Machine zu betreiben.

[bearbeiten] Microsoft Virtual PC 2007

Download: http://www.microsoft.com/windows/products/winfamily/virtualpc/default.mspx

Microsoft Virtual PC wird als Virtualisierungssoftware für Microsoft Windows und als x86-Emulator für Mac OS X angeboten. Mit Virtual PC wird ein kompletter PC virtualisiert beziehungsweise emuliert. QEMU und KVM können Image-Dateien von Virtual PC 2007 direkt starten.

Host ~$ qemu VirtualPC-Festplatte.vhdk 

[bearbeiten] Bochs

Website: http://bochs.sourceforge.net

Bochs ist ein x86-Emulator (Open Source), der auf vielen Betriebssystemen, auch unter anderen Prozessoren, läuft. Das QEMU-Projekt nutzt Teile des Source-Codes des Bochs-Projekts, so zum Beispiel das PC-BIOS. Ein Image für Bochs wird mit dem Programm bximage angelegt. Es erzeugt Image-Dateien in den Formaten flat, sparse oder growing. QEMU und KVM können diese Formate direkt lesen und einbinden. Hier ein Beispiel.

Host ~$ bximage
Do you want to create a floppy disk image or a hard disk image?
Please type hd or fd. [hd]                   [Return]
What kind of image should I create?
Please type flat, sparse or growing. [flat]  sparse
Enter the hard disk size in megabytes [10]   [Return]
What should I name the image? [c.img]        [Return]

Das Programm qemu-img erkennt dieses Format.

Host ~$ qemu-img info c.img
image: c.img
file format: raw
virtual size: 32K (32768 bytes) 
disk size: 32K

Auf der Website von Bochs werden unter dem Punkt Disk Images Images mit bereits installierten Betriebssystemen angeboten. Diese können in QEMU und KVM verwendet werden.

[bearbeiten] GXemul

Website: http://gxemul.sourceforge.net

GXemul emuliert folgende Computer-Architekturen: ARM, MIPS, PowerPC und SuperH. GXemul ist Open Source und lässt sich auf den meisten unix-artigen Betriebssystemen installieren. GXemul verwendet nur Images im raw-Format. Andere Image-Formate müssen für GXemul mit qemu-img konvertiert werden. Mit KVM kann von GXemul-Images kein Boot-Vorgang eingeleitet werden, da KVM nur die x86-Architektur unterstützt. QEMU kann Images von GXemul zwar einbinden, das Booten wird aber durch die Unterschiede bei der emulierten Hardware meist scheitern. GXemul besitzt aber einen speziellen QEMU-MIPS-Mode, mit dem sich virtuelle Maschinen der unter QEMU emulierten MIPS-Architektur betreiben lassen. Mit folgenden Optionen bootet GXemul das im Abschnitt Gast-Systeme, MIPS-Prozessorarchitektur beschriebene Debian.

Host ~$ gxemul -E qemu_mips -M 128 -d DebianEtch_on_MIPS.img \ 
-o 'console=ttyS0 rd_start=0x80800000 rd_size=10000000 init=/bin/sh' \ 
0x80800000:initrd.gz vmlinux-2.6.18-4-qemu

[bearbeiten] FAUmachine

Website: http://www3.informatik.uni-erlangen.de/Research/FAUmachine/

FAUmachine ist sowohl ein Hardware-Emulator als auch eine Virtualisierungslösung. FAUmachine ist Open Source und läuft als normaler Benutzerprozess unter Linux (x86). Portierungen auf OpenBSD und Windows werden derzeit entwickelt. FAUmachine verwendet Teile des Quellcodes von QEMU. Die Vorteile der FAUmachine sind:

Mit dem Start-Skript faum lässt sich nur eine virtuelle Maschine verwalten. Die Konfiguration der virtuellen Maschine wird in der Datei ~/.faumrc gespeichert. FAUmachine kann nur Images im raw-Format lesen.

Host ~$ source ~/.faumrc
Host ~$ qemu-img info $IMAGE_PATH/node.def/ide_gen_disk-11.media
image: /VMS/faumachine/node.def/ide_gen_disk-11.media
file format: raw
virtual size: 2.0G (2147483648 bytes)
disk size: 2.0G

Dieses Image im kann von QEMU oder KVM direkt verwendet werden.

Host ~$ qemu $IMAGE_PATH/node.def/ide_gen_disk-11.media

Es ist auch möglich mit qemu-img Images für die FAUmachine anzulegen oder zu konvertieren.

Host ~$ qemu-img convert Platte.img -O raw \
        $IMAGE_PATH/node.def/ide_gen_disk-11.media

[bearbeiten] Links

<<<|###| >>> http://www.qemu-buch.de

Von „http://qemu-buch.de/de/index.php/QEMU-KVM-Buch/_Speichermedien/_Festplatten-Images_anderer_Virtualisierungssoftware

Diese Seite wurde bisher 14.078 mal abgerufen. Diese Seite wurde zuletzt am 7. März 2010 um 17:31 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
Twitter


Ä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 …