Friday, April 19, 2013

Switching from VMWare to VirtualBox

Ever since I discovered virtualization, I have been creating and using dedicated virtual machines for all my PeopleSoft sandboxes and Fusion MiddleWare components. This allowed me to run multiple releases of OS and PeopleSoft on my own laptop. Until recently I was using VMWare Player and was not a big fan of VirtualBox. After running my first PeopleSoft sandbox based on the OVM templates in VirtualBox I was amazed by the performance and memory allocation. Ever since I have moved all my VMWare virtual machines to VirtualBox.

Why use VirtualBox instead of VMWare?

As said, I have notice an amazing performance increase when running the virtual machines in VirtualBox compared to VMWare. I can have a PeopleSoft virtual machine (PIA, AppServ, Prcs, SES) running with only 4 GB RAM allocation. The same virtual machine in VMWare would need at least 6 GB RAM and running it on a laptop with 8GB RAM, that leave little memory for the host.

I was also amazed by the boot and shutdown time of Windows in VirtualBox. Within one minute Windows boots and in a couple of seconds Windows is shutdown.

VirtualBox provides out of the box the ability to create snapshots and merge these later on with the base virtual hard disk. VMWare only provides this feature with Workstation, which is a paid version.

VirtualBox support multiple network configuration.

Oracle provides multiple pre-build virtual machines, which you can download and get quickly up and running with Oracle software without having to go through an entire installation process.

As of April 14, 2013, Oracle now delivers pre-build PeopleSoft Demo environments for HCM, ELM and FSCM for PUM. So now everyone can have a local PeopleSoft sandbox running without having to install it.

I could go on and on, why you could switch to VirtualBox and I know a lot of people will disagree with me, but mostly it is a personal choice to which tools you want to use. I am not writing this post to advertise VirtualBox or bash VMWare, because both tools are still great. I want to share with you, if you want to start using VirtualBox how to convert the VMWare virtual machines to VirtualBox.

How to move VMWare virtual machines to VirtualBox?

VMWare virtual hard disks use a VMDK extension whereas VirtualBox uses a VDI extension. VirtualBox fully supports VMDK virtual hard disks. So if you have created a virtual machine on VMWare, take the following steps to run it in Virtualbox:
  • Create a virtual machine in VirtualBox
  • When prompted to create a virtual hard disk choose option Do not add a virtual hard drive
  • Finish the virtual machine creation wizard and click on Settings
  • Configure network connectors
  • In the Storage section add your VMDK file as a SATA drive
  • Start the virtual machine
  • Uninstall VMWareTools
  • From the Devices menu Install VirtualBox Guest Additions
  • You have successfully moved your VMWare virtual machine to VirtualBox and should see immediate performance improvement
Some more notes

I had and old Windows XP virtual machine on VMWare and wanted to move this to VirtualBox. I ran into two challenges:

When I initially create my Windows XP virtual machine, I chose to spit the hard disk into 2 GB files.

Before we can add this hard disk to VirtualBox, we need to merge the files into one big hard disk. If like me you have already uninstalled VMWare from your host, you can download VMware Virtual Disk Development Kit. With this tool you can merge the files into one big file, using following command:

C:Program Files (x86)VMwareVMware Virtual Disk Development Kitbin>vmware-vdiskmanager -r "D:VMXPVMWindows XP Professional-cl1-000005-cl1.vmdk" -t 0 D:VMXPVMMergedHD.vmdk
  Creating disk 'D:VMXPVMMergedHD.vmdk'
  Convert: 100% done.
Virtual disk conversion successful.

After this you will end up with one hard disk file that you can add to the VirtualBox virtual machine.

The next challange was that XP does not support SATA, as stated in the user manual

As with SATA, the SAS controller will only be seen by operating systems with device support for it. In particular, there is no support for SAS in Windows before Windows Vista, so Windows XP (even SP3) will not see such disks unless you install additional drivers.

I was able to run my Windows XP on VirtualBox by adding it as an IDE drive and enabling IO APIC

After a couple of reboots all the XP drivers where reinstalled and the virtual machine was running smoothly.


  1. Cool thanks - the vmdk merge was something I ran into and hadn't had time to research - your blog post answered the 1 question I had :-)

  2. I have to second your impression. VMWare Player is not that good.
    However, back to 2007, there was the previous tool, VMWare Server, that was rather a very good one. At this time, much better than VBox (afaik, it was not in Oracle basket).
    Unfortunately, the 2nd version of VMWare Server has changed of technologies (introducing a webserver!), it was terrible (buggy and performance). A right example proof of wrong choices, or how to kill a good product.
    Since then, it has been decommisioned (I think in 2011), replaced by VMPlayer. It's much like a toy to me.
    In the meantime VirtualBox was became in Oracle scope and is now probably alone in laptop/desktop virtualization (I mean on top of an OS) to play an important role.
    Whether VMWare decommisioned VMWare Server, they took an other important decision.
    That one on server class environment, make a "light" version of a bare-metal hypervisor for free (ESXi vSphere Hypervisor). Again, at this moment Oracle VM was far behind. We have now both of them for free, comparison is obviously subject to controverse and usage.
    So, what next ?


  3. Mikael Fransson1:30 AM

    There is no need to merge the vmdk file. Vbox supports a split vmdk file just fine. It even has the ability to split a single vmdk file into pieces if needed.

  4. I had a OS X Mountain Lion 10.8.4 Guest operating system installed on VMWare machine. I tried to run it on the Oracle VM VirtualBox according to the instructions above. I failed to run it. The startup process stops at console text "Kernel is LP64". A few rows above I see warnings "Unsupported Intel processor found, kext will not load". The same machine runs fine with VMWare player.