Switching_From_VMWare_To_VirtualBox:_.vmdk_To_.vdi_Using_Qemu_+_VdiTool

vmwaretovirtualbox.png

Introduction

VirtualBox is a free and OpenSource alternative to VMWare. A reasonable alternative! It is much more convenient than QEmu (Another OpenSource Virtualizer) for several reasons:

  • It has an intuitive Graphical Interface
  • It can handle USB devices simply (non-OSE version only)
  • Using it you can switch between iso disc images quickly
  • The speed up tool is VERY simple to install, the simplest around. (Qemu's one is KQemu and it is really hard to get working. Believe me.)

In this Guide I assume you know about Virtualizers and are actually using VMware Player, which is a free tool but not OpenSource Software. So, why is VirtualBox better than VMWare Player for you?

  • It is Free and Open Source Software
  • It can create and handle any Virtual Machine or Virtual Disc with no problem. To create a Virtual Machine from scratch you need the latest version of VMWare Player, or you can download and install VMWare Server (also a free but proprietary software).
  • If you want a GUI to manage several Virtual Machines you need to buy VmWareworkstation 6.X, which is also proprietary, and not free.

  • Your virtual machines can output sound through OSS, ALSA, or PulseAudio - whereas VMWare can only output via OSS.

  • You have total control over your USB devices, ISO images, sound, and so on. All things you cannot control using VMWare Player: you'd have to edit your Virtual Machine manually.
  • You can install the speed up tools very easily, without having to find them somewhere else. The entire process will be quick and fast and painless. With VMWare, you'd need to download the free VMWare Workstation Trial to extract the ISO images of the VMWare tools from its archive.

And Why would you prefer VMWare Player over VirtualBox?

  • VMWare Player offers more Network modes. Naturally, it is VMWare in general that supports these modes. In fact, to activate them, you'd have to manually edit your Virtual Machine anyway!
  • Through VMWare tools there is an easy method to shrink the virtual machine size. This isn't such an easy feat in VirtualBox.

  • The only other reason to stick with VMWare is that the images are cross platform. However, this cross platform ability comes with performance hits.

So you like Virtual Box and want to switch to this wonderful Open Source software, but you already have a VMWare Virtual Machine you often use? Don’t worry, it is tricky but you can convert a VMWare virtual machine into one that will work on Virtual Box. How convenient is this conversion? Read my next post about How to Install Virtual Box and why you should do it.

Installing Virtual Box

Download Virtual Box for your Linux System here: http://www.virtualbox.org/wiki/Downloads Let's see the steps we need to install Virtual Box on Ubuntu Feisty / Edgy

  • You need some packages to install VirtualBox. Open a Terminal and type:

  • sudo apt-get install libxalan110 libxerces27

    • Double click on the VirtualBox downloaded .deb package and install it. Remember to expand the Terminal window, otherwise you won't be able to see the messages inside it. You'll need to agree to the license and click OK on the message warning you about the User Groups problems we'll fix in the next step

vboxterminal.png

  • You now may need to set some permissions before you can run VirtualBox. To do this, System --> Administration --> Users and Groups

This will open the Users and Groups settings window, after you enter the system password.

vboxpermission2.jpg

Select your username, then click on the Manage Groups button. A new window will appear:

vboxpermission3.jpg

In this window select the vboxusers group from the list, and click on the "properties" button. In the following vboxusers properties window, add your username to the "Group Members" by selecting the tick-box next to your username. Click OK, exit all the menus and restart the PC. You are now a member of the vboxusers group.

Running Virtual Box

Now VirtualBox is installed and fixed, find it into the menù: Applications—>System Tools—>InnoTek VirtualBox. VirtualBox will run and you'll see the following screen:

vboxscreen1.png

Converting your existing .vmdk Virtual Disc Image To a .vdi File

NOTE: If you are converting a disk-image which contains a Windows installation, first follow the steps at http://www.virtualbox.org/wiki/Migrate_Windows

Now we need to convert your existing VMWare disc image into a format readable by VirtualBox. Don't worry, you won't lose any data but, just in case, you can always create a backup copy of your VirtualDisk before we start!

NOTE: If you have multiple vmdk-files like "vm.vmdk, vm-flat.vmdk, vm-0001.vmdk", you have to reorganize your .vmdk-files with: vmware-vdiskmanager -r vm.vmdk -t 0 hardrive-name.vmdk

  • First of all, download qemu, you can do it using Synaptic or simply opening a Console and executing:
  • sudo apt-get install qemu

    • Now open a terminal and go into the folder where you’ve got your .vmdk virtual disc image and type this:

    qemu-img convert harddrive-name.vmdk raw-file.bin

Naturally, you’ll have to change harddrive-name with the name of your .vmdk file and raw-file with the name of the new converted file you want to create. After a few minutes, the conversion will be completed. Now we’ve got a raw hard disk image and we want to transform it into a .vdi file!

  • We need a new application called "vditool". You’ll find it here: http://www.virtualbox.org/download/testcase/vditool Download it into the same dir where you’ve got your new raw .bin disc image file. A simple way to download this app is from the command line, like so:

  • wget http://www.virtualbox.org/download/testcase/vditool <<-- UPDATE - Feb 2009 - current installations of VirtualBox should already include vditool so downloading this file and the following steps below are no longer necessary -->>

NOTE: The commands under "Notes for AMD64 users" below work for Ubuntu 8.04 Hardy 32 bit and are much easier than downloading the same file again. Please try that first.

NOTE: To download vditool using a web browser, right click on the link and choose to save the file. You can also tell a download manager to download this file for you. I suggest using the download manager "Aria", which is in the Ubuntu repositories.

  • Now that we’ve got vditool, we need to make it executable. Right click on the file, open its properties and set the “Executable” permission option. In Gnome, go into the Permission tag and activate the “Let this program be executed” or something like that option (Remember, my Ubuntu is Italian, dunno what’s your exact translation).

executable.png

  • At that point, we’ll need the terminal again, from the same dir where you’ve stored vditool and the .bin raw file. Run this from console into the interested dir:
  • LD_LIBRARY_PATH=/usr/lib/virtualbox ./vditool DD new-file.vdi old-file.bin

<< UPDATE - Feb 2009 - if vditool is already installed by VirtualBox, run this command instead:

  • vditool DD new-file.vdi old-file.bin >>

Warning /!\ VBoxManage convertdd old-file.bin new-file.vdi is the right way to do this now. Note that the old source file is first and the new destination file is second -- if you do it backwards, VBoxManage will complain: File="new-file.vdi" open error: File not found.

Where new-file.vdi is the file that will be outputted by vditool and must be the first to appear in the command. The second filename, old-file.bin, is the name of the raw disc image we converted the .vmdk image to. Naturally, change these invented names for real ones.

NOTE: If you wish, remember that you can run vditool for other tasks too. Now we’ll run it to optimize the filesize of the .vdi image file, for example. For a list of all commands, you’ve just got to execute vditool without any other option.

  • Let's optimize the file size of the newly converted .vdi file, let’s call it new-file.vdi and from the terminal in the dir where you’ve got this file, run:
  • LD_LIBRARY_PATH=/usr/lib/virtualbox ./vditool SHRINK new-file.vdi

    • Now we’re all set up.

Notes for AMD64 users. The vditool executable above only works on 32 bit systems. If you have a 64bit system then use the "vditool" image and library path from your existing VirtualBox installation. The following commands suit an AMD64 system running Ubuntu 7.10:

  • LD_LIBRARY_PATH=/usr/lib/virtualbox /usr/lib/virtualbox/vditool DD new-file.vdi old-file.bin

    LD_LIBRARY_PATH=/usr/lib/virtualbox /usr/lib/virtualbox/vditool SHRINK new-file.vdi

(These commands should actually work on both 32bit and 64bit systems).

Multiple vmdk files to single vdi

The problem is simple. Very often, maybe due to Fat32 partition limits, people split their VMWare disc images into multiple files. So how do you convert multiple .vmdk files into a single .vdi file for Virtual Box?

What you have to do is:

  • Download and install VMWare Server for your platform. It is freeware but proprietary software; it is opensourced but you’ll need to subscribe for a license to use it. We’ll just use this to convert multiple vmdk images into a single one. You can find VMWare Server here.

NOTE: You can simply download the vmware server binary tar.gz distribution, extract the archive and copy the vmware-vdiskmanager utility from the bin folder instead of installing vmware server.

  • Run a terminal, move in the dir where you store your multiple vmdk disc images and run:
  • vmware-vdiskmanager -r source_multiples.vmdk -t 2 single_file.vmdk

And that’s all! The multiple vmdk images will be converted into one single vmdk image file. At that point you’ll be able to use this guide as normal to convert the newly obtained vmdk disc image into a single .vdi file!

Creating a new VirtualMachine

Just click on the "New" button on the upper left side of the window:

vboxscreen2.png

Now you can follow the Wizard.

vboxscreen3.png

Here are the guided steps:

  • Click on Next. In this Screen you'll see the VirtualMachine name and OS Type. Assign to Name whatever you like but remember to correctly set the OS Type, for example, Windows XP (Windows run almost at the native machine speed into a VirtualBox Virtual Machine, try it to believe! Smile :) )

vboxscreen4.png

  • Now assign the amount of RAM memory to the Virtual Machine. I recommend not more than the half of your real physical memory.

vboxscreen5.png

  • Here's the Hard Disc selection page. If you didn't need to switch from VMWare to VirtualBox, that is, if you haven't got an HD Image to use, create a new one, otherwise (And that's the purpose of this How-To), in this screen choose the Virtual Disc Image we just converted, that is the .vdi file we obtained after the conversion!

vboxscreen6.png

  • You'll see the summary of your new Virtual Machine. Click on Finish and there you are.

Running and setting up your new Virtual Machine

The Machine has been created but we need to set it UP a bit. Some very quick and simple steps:

  • Click on the Settings button in the upper left part of the VirtualBox window:

    vboxscreen7.png

  • You'll see the settings window. Some important Settings you might want to set are:
  • * Under the advanced tab, there's the booting order of your Virtual Machine, the same settings you'd have in a normal Bios. I suggest you to set it to CD/DVD Rom and then Hard Disk, so that it will be able to boot any bootable CD you may insert into the drive.
  • * Under the CD/DVD-Rom option you'll have to set: Mount CD/DVD Drive. You can choose either to have Virtual Box handle your real CD/DVD Device or mount any iso image! Isn't that great?
  • * Enable sound and set up a little your Network connection. I suggest you to set it on NAT.
  • * Under the USB option you can choose whether to enable or disable USB handling by VirtualBox (note - this does not work in the "Open Source Edition" (OSE) that is available as an Ubuntu package virtualbox-ose - USB only works in the non-open version that you download directly from the VirtualBox web site). Remember that if you enable USB, while VirtualBox will be running, it will steal any plugged-in USB device from the real Machine!

    vboxscreen8.png

  • Now we're ready. Choose your Virtual Machine from the list and click on the Start button. If everything is okay, the machine will run, even if a little set up will be required from inside the OS you’re using. For example, Windows will have a lot of problems since some of its virtualized hardware has changed.

When I started my old disc image converted into a new compressed .vdi file inside a new Virtual Machine created with VBox, WinXP refused to start. I had to insert in the CD-Rom of my original WinXP CD, boot from CD and restore the windows installation! Windows reconfigured and installed each new virtual peripheral so that at reboot everything was okay and all my programs were left installed in their original locations.

Conclusions

VirtualBox is a wonderful Virtualization Tool, but you'll probably want some more information about it, since this is not intended as a user guide. Read the entire manual (linked to in the above Chapter) and also have a look at this page in the VirtualBox Website for interesting information about Network, Sharing Files between guest and host OSes and much more: http://www.virtualbox.org/wiki/User_HOWTOS

UbuntuMagazine/HowTo/Switching_From_VMWare_To_VirtualBox:_.vmdk_To_.vdi_Using_Qemu_+_VdiTool (last edited 2009-11-03 15:22:04 by somnoliento)