User Tools

Site Tools


virtualbox

This is an old revision of the document!


VirtualBox

VirtualBox is a free/opensource Hypervisor from Sun Microsystems. It has performance on par with VMware and is very mature. We have two virtualization servers, biovbox and biovboxtesting.

Create a VM

Copy an ISO to your home directory:

$scp ubuntu-9.04-desktop-i386.iso alan@172.26.0.200:~/
  • SSH to VM server: 172.26.0.200
$ ssh alan@172.26.0.200
  • start the virtualbox application
$ VirtualBox
  • Follow the wizard to create a VM with the following properties:
    1. Base Memory: less than 512 MB
    2. Network : NAT
    3. Hard disk size: less than 30Gb

Networking

Bridged Networking

If your guest is using bridged networking you MUST use this command to allow other users to use the host's physical network card. Make sure your virtual machine is shut down and then run this command:

VBoxManage setextradata MyMachine VBoxInternal/Devices/pcnet/0/LUN#0/Config/RestrictAccess 0

Each and every VM using bridged networking must use this command. If you are seeing errors like VERR_PERMISSION_DENIED regarding the network interface, this is the cause!

As of VirtualBox 3.1.2 this is still a known issue.

Port Forwarding

If your guest OS is using NAT for networking and you want to access services like Apache or SSH, you will need to enable port forwarding. There is no GUI for this in VirtualBox, but you can use VBoxManage setextradata to make the required changes. If you want to SSH to your VM, for example:

$ VBoxManage setextradata Ubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2223
$ VBoxManage setextradata Ubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
$ VBoxManage setextradata Ubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP

Then you can log in to the VM from your own computer using the port you've forwarded above:

$ ssh -p 2223 username@172.26.0.200

Commonly-used commands

List your VMs

$ VBoxManage list vms

List your running VMs

$ VBoxManage list runningvms 

Updating VirtualBox

Stop any running VMs

Either shut down or "save state" for any running VMs. First, find any users who have "headless" VMs:

# ps aux | grep -i VBoxHeadless
jmagochi  4939  3.9  3.5 759372 72268 ?        Sl   Oct05 402:13 /usr/lib/virtualbox/VBoxHeadless -s nobu
jmagochi  4991 12.5  3.2 621588 67632 ?        Sl   Oct05 1281:41 /usr/lib/virtualbox/VBoxHeadless -s lims
aorth    18431  9.7  1.7 998940 36160 ?        Sl   Oct11 129:54 /usr/lib/virtualbox/VBoxHeadless -s b0237553-9653-4461-bd0e-d4d316c16d4f -v off

As the user who owns the VM, save the VM's state:

# su - jmagochi
$ VBoxManage controlvm nobu savestate
$ VBoxManage controlvm lims savestate
$ exit
# su - aorth
$ VBoxManage controlvm b0237553-9653-4461-bd0e-d4d316c16d4f savestate
$ exit

Update VirtualBox

CentOS

# yum update VirtualBox-3.2

Resume VMs

# su - jmagochi
$ VBoxHeadless -s nobu &
$ VBoxHeadless -s lims &
$ exit
# su - aorth
$ VBoxHeadless -s b0237553-9653-4461-bd0e-d4d316c16d4f -v off &

Mount a CD to a running VM

Attach an ISO to a running VM. The CD/DVD device is on the Secondary IDE controller (–port 1), and it is the slave device (–device 1).

VBoxManage storageattach "Debian 504" --storagectl "IDE Controller" --port 1 --device 1 --type dvddrive --medium /usr/share/virtualbox/VBoxGuestAdditions.iso
virtualbox.1289555578.txt.gz · Last modified: 2010/11/12 09:52 by aorth