Switching_From_VMWare_To_VirtualBox:_.vmdk_To_.vdi_Using_Qemu_+_VdiTool

Revision 8 as of 2007-06-08 01:20:32

Clear message

Switching From VMWare To VirtualBox: .vmdk To .vdi Using Qemu + VdiTool

attachment: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
  • 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. You can't do this with VMWare Player. You'd have to either download and install VMWare Server (also a free but proprietary software) to create a new Virtual Machine and edit it with limited options, or create a new Virtual Machine following some weird process you find somewhere online.
  • 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?

  • Only one reason for now: 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! So, if you can avoid using special Network features, switch to VirtualBox NOW! Smile :)

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

attachment: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.

attachment:vboxpermission2.jpg

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

attachment:vboxpermission3.jpg

In this window, press the Add Group button and, from the list, add the vboxusers Group. Click OK, restart the PC and there you go, permissions setted.

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:

attachment:vboxscreen1.png

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

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

  • 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!

NOTE: Downloading that vditool file is not the simplest thing in the world. If you try and open it with Firefox, for example, a strange page with weird code in it will appear. To save this vditool file, 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 you the download manager: Aria. It is into Ubuntu repositoryes.

  • 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).

attachment: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=/opt/VirtualBox* ./vditool DD new-file.vdi old-file.bin

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 this invented names with 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 .dvi file, let’s call it new-file.dvi and from the terminal in the dir where you’ve got this file, run:
  • LD_LIBRARY_PATH=/opt/VirtualBox* ./vditool SHRINK new-file.vdi

    • Now we’re all setted up.

Creating a new VirtualMachine

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

attachment:vboxscreen2.png

Now you can follow the Wizard.

attachment: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 :) )

attachment: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.

attachment: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!

attachment: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: attachment: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.
  • * Unjder the USB option you can choose wheter to enable or disable USB handling by VirtualBox. Remember that if you enable it, while VirtualBox will be running, it will stole any plugged-in USB device from the real Machine! attachment:vboxscreen8.png

  • Now we're ready. Choose your Virtual Machine from the list and lick on the Start button. If everything is okay, the machine will run, even if it will have to be setted up again a bit from inside the OS you’re using. For example, WIndows will have a lot of problems in this part 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, this way, reconfigured and installed each new virtual peripheral so that at reboot everything was okay and all my programs where left installed where they were.

Conclusions

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