User Tools

Site Tools


virtualbox

This is an old revision of the document!


VirtualBox tips/tricks

Commonly-used commands

To change between "not attached", NAT,Bridged,internal network and host olny adapter:

VBoxManage modifyvm <uuid|name> [--nic<1-N> none|null|nat|bridged|intnet|hostonly]

Set the boot order:

VBoxManage modifyvm <uuid|name> [--boot<1-4> none|floppy|dvd|disk|net>]

Add a shared folder:

VBoxManage sharedfolder add <vmname>|<uuid> --name <name> --hostpath <hostpath> [--transient] [--readonly] 

Acpi Vm:

VBoxManage controlvm  <uuid>|<name>pause|resume|reset|poweroff|savestate|acpipowerbutton|acpisleepbutton| 

Change rdp address:

VBoxManage modifyvm <uuid|name> [--vrdpaddress <host>]

Change the Authentication type:

VBoxManage modifyvm <uuid|name> [--vrdpauthtype null|external|guest]

Note: option "external" will limit access to individual users, The user will be required to use rdesktop-vrdp with username and password:

rdesktop-vrdp -u <username> -p - <host ip address>:<vrdp port>

Change rdp port:

VBoxManage modifyvm <uuid|name> [--vrdpport <port>]

List all VMs in the server:

VBoxManage list vms

List all running VMs:

VBoxManage list runningvms 

List guest properties:

 VBoxManage list -l  vms 

Note: All the guest parameters(configuration) are in <guestname>.xml

Create a VM

Copy an ISO to your home directory:

$scp <dist>.iso <username>@172.26.0.205:~/
  • SSH to VM server: 172.26.0.205
$ ssh <username>@172.26.0.205
  • start the virtualbox application
$ VirtualBox
  • Follow the wizzard to create a VM with the following properties:
    1. Base Memory: less than 512 MB
    2. Network : NAT
    3. Harddisk size: less than 30Gb

Port Forwarding

If your guest OS is using NAT for networking 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:
<code>$ ssh -p 2223 username@172.26.0.205

Upgrading VirtualBox

[jmagochi@biovbox ~]$ VBoxManage controlvm CentOS savestate
VirtualBox Command Line Management Interface Version 3.0.8
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
[jmagochi@biovbox ~]$ sudo /etc/init.d/vboxdrv stop

$ wget http://download.virtualbox.org/virtualbox/3.0.12/VirtualBox-3.0.12-54655-Linux_amd64.run
$ ./VirtualBox-3.0.12-54655-Linux_amd64.run
$ /etc/init.d/vboxdrv setup

Expanding a Virtual Disk

There is no way to expand a VDI. What you have to do is create a new VDI, boot the virtual machine to a live cd, and copy over the filesystem (either via dd, rsync, etc).

Create new VDI

Attach to virtual machine and boot with System Rescue CD

Create two partitions with fdisk/cfdisk/parted, whatever:

  • 1: 100 MB, boot, type "Linux" (83)
  • 2: 30 GB, type "Linux LVM" (8E)

Format the boot partition as ext3

LVM setup

Create Physical Volume from device:

pvcreate /dev/sdb2

Create Volume Group from PV:

vgcreate VolGroup01 /dev/sdb2

Create Logical Volumes in VG:

lvcreate -L29G -nLogVol00 VolGroup01
lvcreate -L512M -nLogVol01 VolGroup01

Format the new partitions:

mkfs.ext3 /dev/VolGroup01/LogVol00
<code>mkswap /dev/VolGroup01/LogVol01
Set the disk label on the boot partition to "/boot" using gparted (fstab loads the boot partition based on its label!)

Mount both root partitions:

mount /dev/VolGroup01/LogVol00 /mnt/newroot
mount /dev/VolGroup00/LogVol00 /mnt/oldroot

Copy everything over:

rsync -xrlptgoEv --delete /mnt/oldroot/ /mnt/newroot/

Mount both boot partitions:

mount /dev/sdb1 /mnt/newboot
mount /dev/sda1 /mnt/oldboot

Copy everything over:

rsync -xrlptgoEv --delete /mnt/oldboot/ /mnt/newboot/

Force SElinux to relabel all files on boot (or else SElinux will deny you to log in)

touch /mnt/newroot/.autorelabel

Unmount all mounted logical volumes

Install GRUB on the new VDI

grub
> root (hd0,0)
> setup (hd0)

Renaming the new volume group

Deativate all logical volumes

lvchange -an /dev/mapper/VolGroup*

Rename old volume group

vgrename VolGroup00 VolGroupOld

Rename new volume group

vgrename VolGroup01 VolGroup00
virtualbox.1263381610.txt.gz · Last modified: 2010/05/22 14:19 (external edit)