VBoxHeadless - Running Virtual Machines With VirtualBox 2.0 On A Headless Ubuntu 8.04 Server
Version 1.0
Author: Falko Timme
This guide explains how you can run virtual machines with Sun xVM VirtualBox 2.0 on a headless Ubuntu 8.04 server. Normally you use the VirtualBox GUI to manage your virtual machines, but a server does not have a desktop environment. Fortunately, VirtualBox comes with a tool called VBoxHeadless that allows you to connect to the virtual machines over a remote desktop connection, so there's no need for the VirtualBox GUI.
I do not issue any guarantee that this will work for you!
1 Preliminary Note
I have tested this on an Ubuntu 8.04 server (host system) with the IP address 192.168.0.100 where I'm logged in as a normal user (user name administrator in this example) instead of as root.
2 Installing VirtualBox
To install VirtualBox 2.0 on our Ubuntu 8.04 server, we open /etc/apt/sources.list...
sudo vi /etc/apt/sources.list
... and add the following line to it:
[...] deb http://download.virtualbox.org/virtualbox/debian hardy non-free |
Then we download Sun's public key...
sudo wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -
... and update our package database:
sudo apt-get update
Now we bring our system up to date:
sudo apt-get upgrade
Afterwards, we install VirtualBox 2.0 as follows:
sudo apt-get install linux-headers-$(uname -r) build-essential virtualbox-2.0
Creating group 'vboxusers'
Users of VirtualBox must be member of that group in order to have write permissions to /dev/vboxdrv. Otherwise starting of VMs will not be possible. <-- Ok
Unable to find a precompiled module for the current kernel! [...]
Should the vboxdrv kernel module be compiled now? <-- Yes
Now we must add the user that will run VirtualBox (administrator in this example) to the vboxusers group:
sudo adduser administrator vboxusers
VirtualBox is now installed and ready to be used.
3 Using VirtualBox On The Command Line
3.1 Creating A VM
To create a VM on the command line, we can use the VBoxManage command. See
VBoxManage --help
for a list of available switches and (highly recommended!) take a look at chapter 8 (VBoxManage reference) in the VirtualBox 2.0 user manual.
I will now create an Ubuntu 8.04 Server VM with 256MB memory and a 10GB hard drive from the Ubuntu 8.04 Server iso image (which I have stored in /home/ubuntu-8.04.1-server-i386.iso):
VBoxManage createvm -name "Ubuntu 8.04 Server" -register
VBoxManage modifyvm "Ubuntu 8.04 Server" -memory "256MB" -acpi on -boot1 dvd -nic1 nat
VBoxManage createvdi -filename "Ubuntu_8_04_Server.vdi" -size 10000 -register
VBoxManage modifyvm "Ubuntu 8.04 Server" -hda "Ubuntu_8_04_Server.vdi"
VBoxManage registerimage dvd /home/ubuntu-8.04.1-server-i386.iso
VBoxManage modifyvm "Ubuntu 8.04 Server" -dvd /home/ubuntu-8.04.1-server-i386.iso
3.2 Importing An Existing VM
Let's assume you have a VM called examplevm that you want to reuse on this host. On the old host, you should have a directory Machines/examplevm in the VirtualBox directory; Machines/examplevm should contain the examplevm.xml file. Copy the examplevm directory (including the examplevm.xml file) to your new Machines directory (if your user name is administrator, this is /home/administrator/.VirtualBox/Machines - the result should be /home/administrator/.VirtualBox/Machines/examplevm/examplevm.xml).
In addition to that copy the examplevm.vdi file from the old VDI directory to the new one (e.g. /home/administrator/.VirtualBox/VDI/examplevm.vdi).
Afterwards, you must register the imported VM:
VBoxManage registervm Machines/examplevm/examplevm.xml
3.3 Starting A VM With VBoxHeadless
Regardless of if you create a new VM or import and old one, you can start it with the command:
VBoxHeadless -startvm "Ubuntu 8.04 Server"
(Replace Ubuntu 8.04 Server with the name of your VM.)
VBoxHeadless will start the VM and a VRDP (VirtualBox Remote Desktop Protocol) server which allows you to see the VM's output remotely on another machine.
To learn more about VBoxHeadless, take a look at
VBoxHeadless --help
and at chapter 7.4 (Remote virtual machines (VRDP support)) in the VirtualBox 2.0 user manual.