How to convert a VMWare virtual appliance to work with Parallels

From watching the search queries for this site I’m seeing a fair number of people looking for ways to convert a VMWare virtual appliance to run under Parallels. Since I do actually know how to do this, I figured I might provide a little help. There are a number of variables that go into making the conversion so I’ll focus on the simplest case here. The process it self isn’t that hard, but there are a few gotchas that prevent some machines from being converted easily.

What you’ll need:

  1. Qemu - in particular you’ll need the qemu-img command.
  2. Parallels - so you can run the converted appliance. Of course you probably already have this.
  3. A VMWare appliance that you want to convert.
  4. Lots of harddrive space. Some virtual appliance disk images are pretty large and you’ll need enough space to hold both the original and converted disk images.

VMWare appliance requirements:

There a number of different ways that VMWare appliances can be built and some are easier to convert than others. Many images will fit this description, at the end I offer some tips for those that don’t.

  1. IDE based image. VMware supports both SCSI and IDE devices, Parallels only supports IDE.
  2. Single file disk image, meaning there’s only one .vmdk in the appliance.

The process:

The process is actually pretty easy in the simple case.

  1. Download and extract the virtual appliance that you want to convert.
  2. Verify that the disk format for the appliance will work for the conversion as described above.
  3. Convert the image from VMWare format to a raw hard disk image.
    qemu-img convert appliance-harddrive-name.vmdk -O raw appliance-harddrive-name-raw.hdd
  4. Make sure you give it the .hdd extension or parallels won’t open it.
  5. Create a new parallels virtual machine. You can just create a default Linux machine.
  6. Replace “Hard Disk 1″ with the hard disk image you created from the converted VMware image.
  7. Optional: When you created the virtual machine, Parallels also created a hard disk image. Since you’re using the image from the appliance you can delete the image parallels created.
  8. Boot the machine to see if it works.

That’s the basic idea anyway. The key here is getting the VMWare image out of the VMDK disk format and into a raw hard disk image. The challenge is that there are a number of different types of VMDKs and qemu is not currently able to convert all of them. Once you have the raw hard disk image, using it with parallels is very straight forward. It’s also fairly easy to use that same image with Qemu, Xen or even VMWare without doing any further conversions.

Potential problems:

As I mentioned, there are lots of gotchas to this process. Some images are easy to convert and some need a little more work. Here are a few hints that might help with the more difficult images.

  1. The VMWare appliance is heavily stripped of drivers and doesn’t support the same hardware that Parallels emulates. Some of the highly optimized VMs have this problem and it’s a fair bit of work to work around. The easiest thing to do is hope they release a version for Parallels.
  2. The VM uses SCSI disks. Parallels currently exposes hard drives as IDE devices. The problem here is that the OS will likely be looking for the SCSI device names which won’t exist. It’s possible to work around this by using a Linux system and mounting the raw drive image as a loopback device. Once you do that, you can manually change the boot loader and /etc/fstab (assuming the appliance uses Linux) to reference the IDE devices instead of the SCSI devices. This requires a fair amount of expertise to do.
  3. The VM uses disk images broken into 2GB chunks. As long as the chunks aren’t also sparse images, you don’t actually have to use qemu-img to convert the drive. You simply concatenate all the chunks together (in the correct order) and you’ll have a raw hard disk image to work with. Obviously, this needs to be done on a system that supports files larger than 2GB.
  4. As a fall back for the hard drive image type, if you have access to a VMWare Server installation, you can always convert the image into a format that is easier to work with. For instance you could convert a disk image in 2GB sparse chunks into a single non-sparse disk image and then convert it using the process above.

What I’ve covered here doesn’t handle all cases, but hopefully this will at least get you started in the right direction. Virtual appliances are an exciting new way of distributing software that users of Parallels should definitely be able to take advantage of.

Update: I just posted a few ready to run virtual appliances for Parallels.

Related Posts

25 Responses to “How to convert a VMWare virtual appliance to work with Parallels”


  1. 1 Robert Goodyear Dec 15th, 2006 at 1:05 pm

    Silly question, as I am a *nux Luddite and just getting my feet wet, but am I only able to run the qemu-img app on a Linux installation?

  2. 2 Kimbro Staken Dec 15th, 2006 at 1:11 pm

    You can run qemu-img on many different platforms including Mac OS X.

  3. 3 last337 Dec 19th, 2006 at 5:20 pm

    How do I execute qemu-img on my Mac? Everytime I call it up in terminal i get ‘command not found’

  4. 4 Peter Knowles Dec 20th, 2006 at 2:02 pm

    I have followed your instructions to convert a vmware machine to use with Parallels, and find 2 problems.
    1. qemu-img on MacOS does not like the ‘-O raw’ options and ends up creating a file called ‘-O’. But this does not hold me back, as I can use the windows version instead.
    2. the resulting raw disk image does not boot in parallels:
    Boot from hard drive…
    A disk read error occurred
    Any hints?
    Thanks
    Peter

  5. 5 Mario Jan 25th, 2007 at 3:52 pm

    I want to thank you for your guide to converting a vmware virtual machine to parallels. Many many thanks! :-)

  6. 6 biggrizzly Apr 27th, 2007 at 1:09 pm

    Use G4U could be fine. Suppose that you have a VM1 (in VMWare) and VM2 (in Parallels). Connect G4U CD to VM1 and boot from G4U CD. Following the instruction of G4U, you can back up image to a FTP server or someplace else. Then, use G4U boots up VM2 and download the image from FTP server.

    Requirement, HDDs in VMs are in same size.

  7. 7 xurizaemon Jul 27th, 2007 at 11:05 pm

    @ last337 : if you install “Q”, then this program can be found in /Applications/Q.app/Contents/MacOS/qemu-img (or similar)

  8. 8 Cesare Vitali Aug 13th, 2007 at 7:08 am

    Hi, it’s very interesting this post, but I’ve the invers problem:
    I need to convert an Parallels 3.0 image for using with MS Virtual Server 2005.
    Someone know a way to do this trick trip?
    Tnx very much
    Cesare

  9. 9 InstructMe Aug 22nd, 2007 at 1:35 pm

    Maybe change the “What you’ll need” section?
    Since the -O doesn’t work on a Mac, maybe add which OS is being used?

    Thanks to xurizaemon to even find qemu-img.

    I omitted “-O” mentioned by “Peter Knowles” since it appears to default to raw. However I get:
    .: 124: Can’t open /boot/system.cfg

    I guess I’ll try to get QEMU to do the conversion from within Parallels running Ubuntu or Windows (on the Mac host).

  10. 10 serge Aug 26th, 2007 at 2:27 am

    Hello,

    I’m trying to convert an XP hdd to vmdk with qemu-img (so as to use Parallels’ XP VM in VMWF) and I get a 4.73GB file named “-O”. I figured the filesize looks correct, so I just manually renamed it. While setting up the Virtual Hard Disk in VMWF and trying to use the recently converted VM, I get an error message “The file specified is not a virtual disk”.

    I came across MakeVM, which is a shareware cloning utility. Qemu-img should do the job, though, right?

    Thanks in advance for suggestions.
    -s.

  1. 1 Inspirational Technology » Blog Archive » Converting a VMWare virtual appliance to work with Parallels Pingback on Nov 28th, 2006 at 3:46 pm
  2. 2 network0 » Convert VMWare Virtual Appliances to Parallels virtual machines Pingback on Nov 29th, 2006 at 6:55 am
  3. 3 McMahonWeb - » Mac Users: Parallel’s Desktop with VMWare Virtual Appliances Pingback on Nov 29th, 2006 at 8:20 am
  4. 4 Virtualization Daily » Blog Archive » Ready to run virtual appliances for Parallels on Mac OS X, Windows and Linux. Pingback on Nov 29th, 2006 at 11:16 am
  5. 5 Dave’s Place » Convert VMWare images to work with Parallels Pingback on Nov 29th, 2006 at 11:28 am
  6. 6 Inspirational Technology » Blog Archive » Virtual appliances for Parallels Pingback on Nov 29th, 2006 at 11:35 am
  7. 7 Phasor Burn » Blog Archive » VMWare late to the dance with OS X (intel) support Pingback on Nov 29th, 2006 at 1:38 pm
  8. 8 p2vd.com Pingback on Nov 30th, 2006 at 2:47 pm
  9. 9 Use VMWare Appliances in Parallels | acidlabs Pingback on Nov 30th, 2006 at 10:18 pm
  10. 10 Virtualization Daily » Blog Archive » Converting a JumpBox virtual appliance to Microsoft Virtual Server Pingback on Dec 1st, 2006 at 4:31 pm
  11. 11 Daily Clerks Pingback on Dec 12th, 2006 at 10:32 pm
  12. 12 Da VMware a Virtualbox: virtuale open source è meglio « Antonio Doldo Linux Blog Pingback on Mar 22nd, 2007 at 3:58 pm
  13. 13 Vm Портал | Коллекции образов виртуальных машин для Qemu и Parallels Pingback on Apr 7th, 2007 at 12:36 am
  14. 14 links for 2007-07-24 « Amy G. Dala Pingback on Jul 24th, 2007 at 7:18 am
  15. 15 Convert Vmware images to Parallels « Life and all its quirks Pingback on Oct 25th, 2007 at 2:46 pm