KVM, disk formats and disposable computing
I’ve got a couple XenServer vms that I never migrated to ESX. Time and complexity got in the way. In fact one of the reasons why I dislike XenServer is that fact that way it ran disk images was not portable.  Where as with ESX and KVM I can migrate disk images between the two hypervisors without needing to chance anything in the guest. With XenServer at the time this was not easy. XenOSS has a similar issue with PV domains, although with KVM+xenner  is meant to be able to run these.
Anyway here are a few links for converting disk images between formats.
- Running a JumpBox with virt-image and libvirt
- Converting VHD to raw disk images, or even VMDK.
- convert .vhd (VirtualPc) files into .vdi (VirtualBox) files
I found though in the end that kvm-img or qemu-img has able to handle all the images I use: VHD, VMDK, RAW, and QCOW2. For example kvm-image convert disk.vhd -O raw disk.raw will work.
This leads to the nicest thing I found about KVM. With either ESXi 3.5 or vSphere 4 ubuntu 8.04 or 8.10 VMDK files I was able to: kvm-img convert -O raw disk.vmdk disk.raw. Then run this new disk in raw format with KVM plus virtio drivers and do so without any changes in the guest.
This truely is disposable computing!