How do I convert a multiple-part VMDK disk image to qcow2?
In the past, I've had to convert them first to raw images, concatenate them together, and then convert the resulting raw image to qcow2:
qemu-img convert guest-s001.vmdk guest-s0001.raw
qemu-img convert guest-s002.vmdk guest-s0002.raw
qemu-img convert guest-s003.vmdk guest-s0003.raw
qemu-img convert guest-s004.vmdk guest-s0004.raw
qemu-img convert guest-s005.vmdk guest-s0005.raw
cat guest-s0001.raw guest-s0002.raw guest-s0003.raw guest-s0004.raw guest-s0005.raw > guest.raw
qemu-img convert guest.raw guest.qcow2
Don't panic if more than just the last file is smaller than 2146762752 bytes. Some VMware products create vmdk spans with different sizes. The size should match 512 times the number of sectors listed in the extent description in the main vmdk file (readable with any text editor or "cat").
It may be possible to do this all at once too, but I haven't tried this:
qemu-img convert guest-s001.vmdk guest-s002.vmdk guest-s003.vmdk guest-s004.vmdk guest-s005.vmdk guest.qcow2
Or, if they're not actually contiguous disk images, then I'm not sure what to suggest. :)
Good luck!
A quick terminal script to convert all of the images at once would be:
for i in *.vmdk; do qemu-img convert -f vmdk $i -O raw $i.raw; done
cat *.raw > tmpImage.raw
qemu-img convert tmpImage.raw finalImage.qcow2
rm *.raw
It looks like the qemu-img command has been enhanced now. I just converted a bunch of VMware multi-part images to qcow2 with the command:
$ qemu-img convert <base of the image without the S0001,2etc>.vmdk new-image.qcow2