Virtualization has changed the way we use computers and servers. Now when I'm shopping for new hardware I always make the conscious decision to select an extra couple of cores or 4GB of RAM so that the computer I'm building can support running some extra virtual machines. I spent most of my time using VMWare's Virtual Server which became VMWare's free product and now I've moved to using VirtualBox which seems to leave me with much more responsive virtual machines and can also be run in a convenient headless mode on my Linux servers.
First let's install VirtualBox...
# sh VirtualBox-4.1.8-75467-Linux_amd64.run
Verifying archive integrity... All good.
Uncompressing VirtualBox for Linux installation...........
VirtualBox Version 4.1.8 r75467 (2011-12-19T13:15:47Z) installer
Installing VirtualBox to /opt/VirtualBox
dPython found: python, installing bindings...
Building the VirtualBox kernel modulesVirtualBox has been installed successfully.
You will find useful information about using VirtualBox in the user manual
and in the user FAQ
We hope that you enjoy using VirtualBox.
And for headless operation we need to install the extension pack
# VBoxManage extpack install /usr/src/Oracle_VM_VirtualBox_Extension_Pack-4.1.8-75467.vbox-extpack
Now, since I'm booting a Windows XP guest, I need the drivers from Intel for the Intel PRO 1000 MT (82540EM) card, so download those and put them in a folder called IntelPRO then make it into an ISO so we can hand it to the virtual machine.
# mkisofs -V IntelPRO -o IntelPRO.iso -r IntelPRO/
INFO: UTF-8 character encoding detected by locale settings.
Assuming UTF-8 encoded filenames on source filesystem,
use -input-charset to override.
33.72% done, estimate finish Tue Feb 28 09:35:15 2012
67.48% done, estimate finish Tue Feb 28 09:35:15 2012
Total translation table size: 0
Total rockridge attributes bytes: 253
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 0
14832 extents written (28 MB)
Now let's build our new virtual machine to host our existing VMWare Server disk...
# VBoxManage createvm --name "New Machine" --ostype WindowsXP --register
# VBoxManage modifyvm "New Machine" --memory 1024 --acpi on --ioapic on
# VBoxManage modifyvm "New Machine" --nic1 bridged --nictype1 82540EM --bridgeadapter1 eth0
# VBoxManage modifyvm "New Machine" --vrde on --vrdeport 3330
# VBoxManage storagectl "New Machine" --name "IDE Controller" --add ide --controller PIIX4
# VBoxManage storageattach "New Machine" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /var/lib/vmware/Virtual Machines/oldvmwaremachine/oldvmwaremachine.vmdk
# VBoxManage storageattach "New Machine" --storagectl "IDE Controller" --port 0 --device 1 --type dvddrive --medium /opt/VirtualBox/additions/VBoxGuestAdditions.iso
# VBoxManage storageattach "New Machine" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /full/path/to/IntelPRO.iso
# VBoxManage startvm "New Machine" --type headless
Now we can open an RDP session to the server's IP on port 3330 and see the console. It's worth noting here that unless you have the ioapic enabled on VMWare disks, the system won't function correctly, also that this isn't very secure so you should have a firewall in place or use one of the documented authentication methods.
Once connected to the machine, you can use the VirtualBox Guest Additions image to install that and then use the IntelPRO image to install the drivers for the network driver. That's all there is to it and your VMWare machine is now a VirtualBox machine.