VMWare virtuelle Maschinen als Xen Gast nutzen

Wie kann man eine vorhandene Linux VMWare Maschine in ein Image konvertieren, welches man dann für einen Xen-Gast verwenden kann.

Dazu benötigt man  Qemu

Und so geht's:

1. qemu installieren

2. Konvertieren der VMDK-Datei derjenigen VMWare-Maschine, die für einen Xen-Gast genutzt werden soll, in ein RAW-Image:

qemu-img convert -f vmdk /home/vmware/maschine.vmdk \
-O raw /home/xen/vmimage.raw


3. Was wir nun in vmimage.raw vor uns haben, ist ein Image, welches wir nicht mounten können, da es sich im RAW-Zustand befindet.
Wir müssen nun also zunächst die Partitionen in diesem Image ausfindig machen, um diese als einzelne mountfähige Images extrahieren zu können.

fdisk -l -u /home/xen/vmimage.raw

Device Boot Start End Blocks Id System
linux1 * 63 208844 104391 83 Linux
linux2 208845 7550549 3670852+ 83 Linux
linux3 7550550 8193149 321300 82 Linux swap


Uns interessiert hier die linux2 Partition. Um die nun herauszuschneiden, müssen wir die Anzahl Blocks ermitteln nach der Formel END - START + 1. Auf das obige Beispiel angewendet: 7550549 - 208845 + 1 = 7341705.

Das Ergebnis aus unserer Berechnung ergibt den Wert für den dd-Parameter count, und der START-Wert ist der Wert für den dd-Parameter skip.

cd /home/xen
dd if=vmimage.raw of=vm.img bs=512 skip=208845 count=7341705


4. extrahiertes Imag mounten mit

mount -o loop -t ext3 vm.img /mnt