Cheap VPS & Xen Server

Residential Proxy Network - Hourly & Monthly Packages

VBoxHeadless – Running Virtual Machines With VirtualBox 3.1.x On A Headless Mandriva 2010.0 Server


This guide explains how you can run virtual machines with Sun VirtualBox 3.1.x on a headless Mandriva 2010.0 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 a Mandriva 2010.0 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.

If you only have a root account, but no normal user account, create one as follows (user administrator, group administrator)…

# groupadd administrator
# useradd -d /home/administrator -m -g administrator -s /bin/bash administrator

… create a password for the new user…

# passwd administrator

… and log in as that user.

 

2 Installing VirtualBox

To install VirtualBox 3.1.x on our Mandriva 2010.0 server, we need root privileges, therefore we run

$ su

Then we install the dependencies for VirtualBox 3.1.x as follows:

# urpmi wget flex gcc gcc-c++ kernel-devel kernel-headers dkms

Next we pick the right VirtualBox package from http://www.virtualbox.org/wiki/Linux_Downloads; pick the i386 or AMD64 package (depending on your architecture) for Mandriva 2009.1 / 2010.0 (you can find out your architecture by running

# uname -m

The output on my test system is

[root@server1 administrator]# uname -m
x86_64
[root@server1 administrator]#

which means I must pick the AMD64 package.

)…

… and download it as follows:

# cd /tmp
# wget http://download.virtualbox.org/virtualbox/3.1.4/VirtualBox-3.1-3.1.4_57640_mdv2009.1-1.x86_64.rpm

It is possible that the package gets stored as .rpm?xxx instead of just .rpm. To check this, run

# ls -l

[root@server1 tmp]# ls -l
total 39276
-rw-r–r– 1 root root 40216327 2010-02-12 23:03 VirtualBox-3.1-3.1.4_57640_mdv2009.1-1.x86_64.rpm?e=1268058956&h=2e09ee7de5b4dc8427cde168836915dc
[root@server1 tmp]#

As you see, my package is named VirtualBox-3.1-3.1.4_57640_mdv2009.1-1.x86_64.rpm?e=1268058956&h=2e09ee7de5b4dc8427cde168836915dc. Therefore I rename it:

# mv VirtualBox-3.1-3.1.4_57640_mdv2009.1-1.x86_64.rpm\?e\=1268058956\&h\=2e09ee7de5b4dc8427cde168836915dc VirtualBox-3.1-3.1.4_57640_mdv2009.1-1.x86_64.rpm

(You can use the TAB key to let the shell auto-complete the filename.)

Afterwards, we install VirtualBox 3.1.x as follows:

# urpmi VirtualBox-3.1-3.1.4_57640_mdv2009.1-1.x86_64.rpm

Now we must add the user that will run VirtualBox (administrator in this example) to the vboxusers group:

# /usr/sbin/usermod -G vboxusers administrator

VirtualBox is now installed and ready to be used.

Type

# exit

to leave the root account and become a normal user (administrator) again.

 

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 http://www.virtualbox.org/manual/UserManual.html#vboxmanage.

I will now create an Ubuntu 9.10 Server VM with 256MB memory and a 10GB hard drive from the Ubuntu 9.10 Server iso image (which I have stored in /home/administrator/ubuntu-9.10-server-amd64.iso):

$ VBoxManage createvm –name “Ubuntu 9.10 Server” –register
$ VBoxManage modifyvm “Ubuntu 9.10 Server” –memory 256 –acpi on –boot1 dvd –nic1 bridged –bridgeadapter1 eth0
$ VBoxManage createhd –filename Ubuntu_9_10_Server.vdi –size 10000 –register
$ VBoxManage storagectl “Ubuntu 9.10 Server” –name “IDE Controller” –add ide
$ VBoxManage storageattach “Ubuntu 9.10 Server” –storagectl “IDE Controller” –port 0 –device 0 –type hdd –medium Ubuntu_9_10_Server.vdi
$ VBoxManage storageattach “Ubuntu 9.10 Server” –storagectl “IDE Controller” –port 1 –device 0 –type dvddrive –medium /home/administrator/ubuntu-9.10-server-amd64.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 9.10 Server”

(Replace Ubuntu 9.10 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 stop a VM, run

$ VBoxManage controlvm “Ubuntu 9.10 Server” poweroff

To pause a VM, run

$ VBoxManage controlvm “Ubuntu 9.10 Server” pause

To reset a VM, run

$ VBoxManage controlvm “Ubuntu 9.10 Server” reset

To learn more about VBoxHeadless, take a look at

$ VBoxHeadless –help

and at http://www.virtualbox.org/manual/UserManual.html.

4 Connecting To A VM From A Remote Desktop

4.1 Windows XP

You can use the built-in Remote Desktop Connection utility to connect to the VM:

1

Type in the hostname or IP address of the host (not the guest!):

2

And voilà, you should be connected to the VM:

3

4.2 Linux

On Linux desktops, you can use the rdesktop command to connect to the VM. I’m assuming you’re using a Fedora 12 desktop here.

On Fedora 12, you must install rdesktop first. Open a terminal (Applications > System Tools > Terminal)…

4

… and become root:

$ su

Then install rdesktop

# yum install rdesktop

… and leave the root shell:

# exit

Then type in the following command:

$ rdesktop -a 16 192.168.0.100

(192.168.0.100 is the host IP address, not the one of the guest – replace it with your own IP address or hostname; -a 16 means 16 bit colour depth.)

And voilà, you should be connected to the VM:

5

  • VirtualBox: http://www.virtualbox.org/
  • Mandriva: http://www.mandriva.com/

Comments

comments