converting vmware windows virtual machines to citrix xenserver virtual machines

after hunting around for quite some time, along with a lot of trial an error, this process ended up working good for me.

1. download (MergeIDE unzip it and run it on the vmware instance you want to move.

2. uninstall the vmware tools.

3. save all your network settings. run:

ipconfig /all > network.txt
netstat -rn >> netstat.txt

4. on the XenServer, create a new windows VM with the same CPU/Memory/Disk Size specs as your vmware VM

5. get rid of any snapshots you had made for the vmware instance.

6. depending on what form of vmware you are running (workstation/server/esxi/esx) you might have to convert the disk image using something like vmware-vdiskmanager (which comes with all the vmware products):

vmware-vdiskmanager -r vmware_image.vmdk -t 0 temporary_image.vmdk

if you arnt sure if you need to convert the disk, it doesnt hurt to convert it anyway. You just might waste time and disk space. If you are using esxi, you don’t need to convert the disk.

7. assuming you have access to the vmware .vdk disk image, run this from a linux box:

qemu-img convert ./name_of_source_vmdk_file.vmdk VM_Instance_Name.img

8. you need to access the new converted disk image from the XenServer, so put it on an NFS mount or something.

9. First figure out the UUID of the disk image you created when you created the new xen instance. Its much easier if you go into the XenCenter GUI and go to the instance you created, and rename the disk something useful.

Then you can ssh into the XenServer and type:

xe vdi-list  name-label=whatever_you_named_the_disk

copy down the UUID of the disk image.

Then run:

xe vdi-import uuid=uuid_of_disk filename=name_OF_SOURCE_DISK_IMAGE.img

after a while, you get dropped back to the prompt, and you can fire up the XenServer instance.