Convert a Parallels VM to Virtualbox

29 12 2009

In the last years I had the luck that my former employer paid for my license of Parallels Desktop, but this version is kind of outdated and since I only use virtualization for my year-end tax return statement I don’t see the point in spending money for a high-end virtualization solution.

As you may know, Sun offers an open source alternative to the big virtualization players called Virtualbox. Virtualbox is available on many different platforms and supports almost everything one might need from a plain and simple virtualization solution. Undoubted, when you have one software with a virtual machine up and running it is really hard to switch your vendor since everything is packed in vendor specific files with different hard disk images that are not compatible.

The first step is to install a current version of Virtualbox that you get directly from their website. Follow the installer to get it up and running until the point where you might want to create your new virtual machine.

The next step is to convert / copy the hard disks you used in your VM. When looking at the structure of a virtual machine the hard disk is basically everything you need. The rest is more or less configuration that can easily be moved to the new host system.

Luckily Virtualbox can directly mount Parallels or VMWare disk images, but there are a few pitfalls to avoid on the road to a working virtual machine.

  • What is my disk image file? – The easy answer is: the largest one, on Mac OS X don’t be confused with fact that the hdd file from Parallels is actually only a folder (right-click, show package contents) where the actual hard disk image is stored – now it’s the one with the .hds ending
  • Why can’t I open the file in Virtualbox? – You might get strange error messages regarding the type of the file, the answer to this question is twofold: first make sure the file is not a sparse disk image from Parallels and second, if this does not work out, rename the .hds file to .hdd
  • How do I convert my Parallels disk image from sparse to plain? – To perform this task, open the Parallels Image Tool and select the hard disk image you want to modify, now click on modify hard disk and select “convert to plain image” from the next page of the wizard. Depending on the size of you image, this can take quite a long time.

When the above steps succeeded you have almost everything in place to start the new virtual machine. Depending on your previous settings in Parallels configure the new image in Virtualbox. When you try to convert a Windows image from Parallels to Virtualbox there are a few other obstacles.

Usually Windows recognizes new hardware without any major problems and loads the device drives at system startup, but there is a case when Windows gets really picky about its environment: This is when you change the type of the IDE controller for example. If this is the case Windows will fail with a blue screen of death with error message 0x0000007B (no accessible boot device). The way to go is to repair the installation by using a Windows installation CD/DVD and start the repair mode. The repair mode for Windows XP e.g. is started by booting from the CD, select installation and when the list of available partitions is displayed choose “repair” from the menu list. Even though it might look like Windows is performing a fresh and clean installation of the system, it is actually preserving all settings and installed applications. But as always, it is better to have a backup.

As soon as the repair is finished you can directly boot into your new instance of a Virtualbox VM.

If you have any questions, feel free to ask.

-Martin





PyPalm for Palm webOS development

18 12 2009

In the recent days I had the chance to get my hands on a Palm Pre and sure this device may not be as feature complete as Apples iPhone but the UI is appealing and it brings some new UI concepts into the game. The development environment is really nice since the Palm emulator is not homegrown piece of software but a plain small linux that boots into a browser using VirtualBox as a virtualization solution.

Now the developer can choose between using either his editor of choice and the supplied command line tools or use a plugin for Eclipse that was developed by Palm. From my point of view this gives the developer a real freedom to choose whatever development workflow he likes and does not force him into new IDEs where you have to start learning your work environment from the beginning.

However the command line tools have a little shortcoming as they do not derive information from the appinfo.json that is available in the application directory. For me the first thing I created was a deploy bash script that would allow me to package, build and deploy to the virtual machine in one step. Again the issue was that already available information about the application from config files was not derived.

So I started writing a small command line application called PyPalm in Python that would allow all that what I mentioned above and regroup the Palm tools together.

To install PyPalm just open a terminal and use easy_install or pip to install the package via the command:

sudo easy_install pypalm

As soon as this is completed you can enjoy the full power of PyPalm. Just change to your applications directory and execute

pypalm --help

to get an idea of the supported commands. When you now execute

pypalm deploy

it will automatically determine the current version and ID of the application from the configuration file and package your application plus installing it to the VM or the attached phone.

Neat, isn’t it?

Currently the feature set is kind of small but there can be more (generators,…). If you have any ideas please feel free to leave a comment.

-Martin





Microsoft Surface Table on SAP TREX

13 12 2009

This video shows a prototype visualizing data that is stored in a main-memory database on a Microsoft Surface Table. The prototype was created within the Enterprise Platform and Integration Concepts (EPIC) group at the Hasso-Plattner-Institut at the University of Potsdam in Germany. Check it out !

– Christian