Switching_From_VMWare_To_VirtualBox:_.vmdk_To_.vdi_Using_Qemu_+_VdiTool

Differences between revisions 16 and 39 (spanning 23 versions)
Revision 16 as of 2008-03-03 00:22:15
Size: 12543
Editor: 5acd417f
Comment: fix user/group setting instructions
Revision 39 as of 2009-11-03 15:22:04
Size: 14896
Editor: emt200-31-198-34
Comment: The newest VmWare Player (3.x) can create virtual machines
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Switching From VMWare To VirtualBox: .vmdk To .vdi Using Qemu + VdiTool = #title Switching From VMWare To VirtualBox: .vmdk To .vdi Using Qemu + VdiTool
Line 3: Line 3:
attachment:vmwaretovirtualbox.png ||<tablestyle="float:right; font-size: 0.9em; width:30%; background:#F1F1ED; background-repeat: no-repeat; background-position: 98% 0.5ex; margin: 0 0 1em 1em; padding: 0.5em;"><<TableOfContents>>||

{{attachment:vmwaretovirtualbox.png}}
Line 10: Line 12:
        * It can handle USB devices simply         * It can handle USB devices simply (non-OSE version only)
Line 17: Line 19:
        * 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.         * 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.
Line 23: Line 27:
        * 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! :)         * 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.
Line 27: Line 33:
== Installing Virtual Box == === Installing Virtual Box ===
Line 38: Line 44:
attachment:vboxterminal.png {{attachment:vboxterminal.png}}
Line 44: Line 50:
attachment:vboxpermission2.jpg {{attachment:vboxpermission2.jpg}}
Line 48: Line 54:
attachment:vboxpermission3.jpg {{attachment:vboxpermission3.jpg}}
Line 50: Line 56:
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 teh tick-box next to your username. Click OK, exit all the menus, restart the PC and you will be a member of the vboxusers group. 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.
Line 52: Line 58:
== Running Virtual Box == === Running Virtual Box ===
Line 56: Line 62:
attachment:vboxscreen1.png {{attachment:vboxscreen1.png}}
Line 58: Line 64:
== Converting you existing .vmdk Virtual Disc Image To a .vdi File == === 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 '''
Line 61: Line 69:

'''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 '''
Line 73: Line 85:
    {{{wget http://www.virtualbox.org/download/testcase/vditool}}}     {{{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.
Line 79: Line 93:
attachment:executable.png {{attachment:executable.png}}
Line 83: Line 97:
    '''LD_LIBRARY_PATH=/opt/VirtualBox* ./vditool DD new-file.vdi old-file.bin'''     '''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''' >>

/!\ '''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.`
Line 89: Line 109:
        * 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:         * 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:
Line 91: Line 111:
    '''LD_LIBRARY_PATH=/opt/VirtualBox* ./vditool SHRINK new-file.vdi'''     '''LD_LIBRARY_PATH=/usr/lib/virtualbox ./vditool SHRINK new-file.vdi'''
Line 98: Line 118:
Line 100: Line 121:
== Multiple vmdk files to single vdi == === Multiple vmdk files to single vdi ===
Line 108: Line 129:
'''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.''
Line 114: Line 137:
== Creating a new VirtualMachine == === Creating a new VirtualMachine ===
Line 118: Line 141:
attachment:vboxscreen2.png {{attachment:vboxscreen2.png}}
Line 122: Line 145:
attachment:vboxscreen3.png {{attachment:vboxscreen3.png}}
Line 128: Line 151:
attachment:vboxscreen4.png {{attachment:vboxscreen4.png}}
Line 132: Line 155:
attachment:vboxscreen5.png {{attachment:vboxscreen5.png}}
Line 136: Line 159:
attachment:vboxscreen6.png {{attachment:vboxscreen6.png}}
Line 140: Line 163:
== Running and setting up your new Virtual Machine == === Running and setting up your new Virtual Machine ===
Line 146: Line 169:
        attachment:vboxscreen7.png         {{attachment:vboxscreen7.png}}
Line 152: Line 175:
        ** Under 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 steal any plugged-in USB device from the real Machine!         ** 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!
Line 154: Line 177:
        attachment:vboxscreen8.png         {{attachment:vboxscreen8.png}}
Line 160: Line 183:
        * Additional troubleshooting suggestions for when an [[http://www.virtualbox.org/ticket/995|XP guest fails to boot]].
Line 162: Line 187:
== Conclusions == === Conclusions ===

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 emt200-31-198-34)