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 9.10 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 3.1 on our Ubuntu 9.10 server, we open /etc/apt/sources.list...
# sudo vi /etc/apt/sources.list
[...] deb http://download.virtualbox.org/virtualbox/debian karmic non-free |
Then we download Sun's public key...
# wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -
# sudo aptitude update
Afterwards, we install VirtualBox 3.1 as follows:
# sudo aptitude install linux-headers-$(uname -r) build-essential virtualbox-3.1 dkms
Creating group 'vboxusers'
Users of VirtualBox must be members of that group. Host network interfaces will be assigned to that group. <-- Ok
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 http://www.virtualbox.org/manual/UserManual.html#vboxmanage.
# 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/ubuntu-9.10-server-amd64.iso
# 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/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#id2515738.
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:
Type in the hostname or IP address of the host (not the guest!):
And voilà, you should be connected to the VM:
... and 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 Links
- VirtualBox: http://www.virtualbox.org/
- Ubuntu: http://www.ubuntu.com/
Great sharing. Thanks for sharing...
ReplyDeleteRegards,
clipping path service provider