Tuesday Jul 31, 2012
Friday Mar 09, 2012
By Fat Bloke on Mar 09, 2012
Lots of people use VirtualBox to create virtual appliances or vm's which they can share with others. There's a whole host of them over at the OTN Developer VM's page, BTW.
But someone asked me how they would go about about redistributing a vm which required a "click to accept" type of license. Here's how:
When you are happy with the vm that you want to redistribute, you can use the GUI or command-line interface of VirtualBox to export the vm.
Choose "File...Export Appliance..." to bring up the Export wizard, then select the vm's that make up your appliance. (Note that you can export multiple vm's here. For example, the database vm may be separate from the business logic vm, etc).
Choose the flavor of appliance: ovf or ova, and whether to create a manifest (hashes which can be used to determine if the appliance components arrived intact). Note that VirtualBox uses the extension to decide which type (ovf or ova) of appliance to create:
When you get to the Appliance Export Settings dialog you can describe who you are, what the appliance is called as well as specifying license text:
You can leave any of these fields empty, however, it is the presence of the License text field that causes VirtualBox to present the License at Import-time.
BTW The command line interface syntax that achieves the same thing is:
$ VBoxManage export Usage: VBoxManage export <machines> --output|-o <ovf/ova> [--legacy09|--ovf09|--ovf10|--ovf20] [--manifest] [--vsys <number of virtual system>] [--product <product name>] [--producturl <product url>] [--vendor <vendor name>] [--vendorurl <vendor url>] [--version <version info>] [--eula <license text>] [--eulafile <filename>]
So you can create scripts to automate the building of this.
The end result is the same: an ova file or an ovf file with stream-optimized disk images and an optional manifest file.
Here's what this appliance would then look like on import:
From the File...Import... menu in the VirtualBox Manager you select the ova or ovf file and you're show what the appliance contains:
At this point you can modify the devices if required, or change the MAC address (to avoid clashes with existing vm's).
But on continuing, if there is a License, it gets presented thus:
That's all there is to it.
Thursday Feb 24, 2011
By Fat Bloke on Feb 24, 2011
This has tripped me up twice now, so time to write it down
Oracle Linux 5 and now also Oracle Linux 6 come with a choice of kernels:
- a 100% Red Hat compatible one; and
- the Unbreakable Enterprise Kernel.
When installing VirtualBox, or the VirtualBox Guest Additions, we need to build and install kernel drivers which are dependent on the version of Linux you are using. So we need a few packages to be installed to allow us to do this.
Here's how using the standard kernel:
yum update yum install gcc yum install kernel-devel
or if using the Unbreakable kernel:
yum update yum install gcc yum install kernel-uek-devel
There, now I'll never forget how to do this again.
Monday Jun 07, 2010
Tuesday Feb 09, 2010
By Fat Bloke on Feb 09, 2010
There are a growing number of people asking the question: how do you move a VMware virtual machine to VirtualBox. So it is about time the Fat Bloke rolled up his sleeves and showed us how. (BTW you can click on screenshots below to magnify)
People typically want to do this because they have spent time installing a guest OS together with a software stack and they don't really want to go thru all this again. But moving a vm from one virtualization platform to another is analogous in the real world to unplugging a hard drive(s) from one computer and plugging it into a different manufacturer's computer. You may find that the guest operating system gets upset when it boots up and sees virtual hardware which is different than it was expecting. Different guest operating systems react differently to this situation (Linux is typically more accommodating than Windows in this respect). In fact some guest operating systems get so upset, they may BSOD (Blue Screen of Death) on you.
Secondly, some of the software that you have installed above the OS, such as VMware Tools, may also be relying on specific virtual hardware.
So the Fat Bloke's First Rule of VM Migration is: Don't, if you can help it. If you can create a new vm from scratch on the new virtualization platform, you probably should. That way the guest OS installs the right drivers for your particular virtual hardware, and you are not left with orphaned software which needs a specific virtualization layer.
That said, there are still going to be people looking to avoid a complete reinstallation and willing to live dangerously, so let's discuss what is possible. Note that because different guests behave so differently we're going to focus on one guest OS in this blog: Oracle Enterprise Linux, and we'll move it from VMware Workstation 7 to VirtualBox 3.1. Here is our start state, the vm running in VMware Workstation 7 on Windows 7:
Step 1 - Preparing to Migrate
It's a good idea to take a copy of the vm that we're trying to migrate just in case you make a mess of things. With VMware Workstation you can clone a vm to do this or copy the machine in some other way such as copying files.
To prepare for migration we're going to remove virtualization platform-specific components:
- Remove VMware tools
- Reset the Display and Input device configuration
- Remove incompatible devices
The Fat Bloke's Second Rule of VM Migration is that it is easier to unpick platform-specific software on the native virtualization platform. So let's start up the vm under VMware to prepare for migration
Removing VMware Tools
This is easy enough:
and you should see something like this:
Resetting the Display Device and Input Devices
When Oracle Linux was first installed the display was set as a VMware display adaptor and input devices as a VMware keyboard and mouse. By the time we're finished this won't be the case, so let's prepare for that by moving aside the the OEL X.org conf file like this:
mv /etc/X11/xorg.conf /etc/X11/xorg.conf.vmware
This file will get recreated later when we run on the VirtualBox platform.
Now let's shutdown the guest.
Remove Incompatible Devices
The VMware soundcard device is different from the one that VirtualBox exposes so let's remove this device from the vm configuration in the VMware Settings dialog:
Step 2 - Exporting the Virtual Machine
A Virtual Machine consists of :
- configuration information (in VMware a .vmx file)
- virtual hard drive(s) which the guest is installed on. (in VMware, typically .vmdk files)
An emerging standard for encapsulating this information to allow vm's to be transported more easily is the OVF or Open Virtualization Format. So in theory you should be able to Export this vm from VMware Workstation and Import into VirtualBox. Sadly, the VMware conversion wizard (File...Import or Export...) doesn't support Oracle Enterprise Linux as a guest:
But there is a command line ovftool that can be downloaded from VMware's site.
So in a Windows command.exe window you can run:
cd C:\\Users\\fatbloke\\Documents\\Virtual Machines\\Clone of Oracle Enterprise Linux
"\\Program Files\\VMware\\VMware OVF Tool"\\ovftool.exe "Clone of Oracle Enterprise Linux.vmx" OEL.ovf
And eventually you end up with 3 files:
- OEL.ovf - configuration information
- OEL-disk1 - compressed disk format file
- OEL.mf - digital signatures (SHA1) of the other files.
We can now move these to the destination system for import by VirtualBox.
Step 3 - Importing into VirtualBox
You can import an ovf file into VirtualBox from the graphical user interface or the command-line.
Importing this takes a while as the compressed disk is converted to a usable format, but your should end up with a new entry in your vm list in VirtualBox like this:
Now the moment of truth, Start it up...and we should see Oracle Enterprise Linux boot up under VirtualBox
Step 4 - Install the VirtualBox Guest Additions
Finally don't forget to install the VirtualBox Guest Additions which is the mirror image operation to removing the VMware Tools.
Once you have mounted the Guest Additions iso image you can run install them from the mounted directory using the command:
And after a restart of the guest you are all set to go.
Migration is complete!
Epilogue (Advanced users only)
There is an alternative to step 2 and 3 above for people who know what they are doing.
After performing Step 1 you could simply take the VMware disk image (.vmdk) and plug this into a manually configured VirtualBox vm. This effectively relies on the user to create an appropriately similar vm instead of relying on the ovf export and import (Steps 2 and 3 above) process. Note that the default disk controller used by VMware is an LSI SCSI controller, so when manually creating a VirtualBox vm you need to configure it appropriately.
You still need Step 4 for optimal performance and ease of use. And don't forget the tip about Speeding up Linux Guests too.
- FatBloke Sings his Last (at Oracle)
- What's New in SGD 5.1?
- Cloning from a given point in the snapshot tree
- What's New in VirtualBox 4.3?
- Airbus and SGD
- Controlled Application Deployment with Secure Global Desktop
- 3D Acceleration with Ubuntu guests
- Using VirtualBox to test drive Windows Blue
- What's New in Oracle VDI 3.5?
- Upgrading Linux Guests