User Tools

Site Tools


virtualbox

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
virtualbox [2010/01/13 11:19] 172.26.0.166virtualbox [2011/06/03 13:02] aorth
Line 1: Line 1:
-===== VirtualBox tips/tricks ===== +====== VirtualBox ====== 
-==== Commonly-used commands ==== +VirtualBox is a freeopen-source hypervisor from Oracle.  It has performance on par with VMware and is very mature.  We have two virtualization servers which run VirtualBox on top of CentOS, [[biovbox]] and biovboxtest.
-To change between "not attached"NAT,Bridged,internal network and host olny adapter:  +
-<code>VBoxManage modifyvm <uuid|name> [--nic<1-N> none|null|nat|bridged|intnet|hostonly]</code> +
-Set the boot order: +
-<code>VBoxManage modifyvm <uuid|name> [--boot<1-4> none|floppy|dvd|disk|net>]</code> +
-Add a shared folder: +
-<code>VBoxManage sharedfolder add <vmname>|<uuid> --name <name> --hostpath <hostpath> [--transient[--readonly] </code> +
-Acpi Vm: +
-<code>VBoxManage controlvm  <uuid>|<name>pause|resume|reset|poweroff|savestate|acpipowerbutton|acpisleepbutton| </code> +
-Change rdp address: +
-<code>VBoxManage modifyvm <uuid|name> [--vrdpaddress <host>]</code> +
-Change the Authentication type:  +
-<code>VBoxManage modifyvm <uuid|name> [--vrdpauthtype null|external|guest]</code> +
-**Note**: option "external" will limit access to individual users, The user will be required to use rdesktop-vrdp with username and password: +
-<code>rdesktop-vrdp -u <username> -p - <host ip address>:<vrdp port></code> +
-Change rdp port: +
-<code>VBoxManage modifyvm <uuid|name> [--vrdpport <port>]</code> +
-List all VMs in the server: +
-<code>VBoxManage list vms</code> +
-List all running VMs: +
-<code>VBoxManage list runningvms </code> +
-List guest properties: +
-<code> VBoxManage list -l  vms </code> +
-Note: All the guest parameters(configuration) are in <guestname>.xml+
  
-===== Create a VM ===== +  * [[http://www.virtualbox.org|VirtualBox homepage]] 
-Copy an ISO to your home directory: +  * [[http://ubuntuforums.org/showthread.php?t=646613|Tips to optimize Linux guests and hosts]]
-<code>$scp <dist>.iso <username>@172.26.0.205:~/</code> +
-  * SSH to VM server: 172.26.0.205 +
-<code>$ ssh <username>@172.26.0.205</code> +
-  * start the virtualbox application +
-<code>VirtualBox</code> +
-  * Follow the wizzard to create a VM with the following properties: +
-      - Base Memory: less than 512 MB +
-      - Network : NAT +
-      - 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: +====== Optimal settings for Linux guests ====== 
-<code>$ VBoxManage setextradata Ubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2223 +Guest operating systems are not like host operating systems.  These settings are generally regarded as improving the performance of guest virtual machines.
-$ 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</code>+
  
-=== Upgrading VirtualBox ===+  * Set the IO scheduler to ''noop'': 
 +    * Edit the grub command line to set the default IO scheduler, usually in ///etc/default/grub//: ''elevator=noop'' 
 +  * Install guest additions (VirtualBox or VMware) 
 +  * Run a virtual machine-specific kernel: 
 +    * Ubuntu: linux-image-virtual 
 +  * Mount filesystems with ''noatime'' in ///etc/fstab//
  
-<file>[jmagochi@biovbox ~]$ VBoxManage controlvm CentOS savestate +====== Networking ====== 
-VirtualBox Command Line Management Interface Version 3.0.8 +===== Bridged Networking ===== 
-(C) 2005-2009 Sun Microsystems, Inc. +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: 
-All rights reserved.+<code>VBoxManage setextradata MyMachine VBoxInternal/Devices/pcnet/0/LUN#0/Config/RestrictAccess 0</code> 
 +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!
  
-0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% +As of VirtualBox 3.1.2 this is still a [[http://www.virtualbox.org/ticket/2852|known issue]].
-[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 +===== Port Forwarding =====
-$ ./VirtualBox-3.0.12-54655-Linux_amd64.run +
-$ /etc/init.d/vboxdrv setup +
-</file>+
  
-===== Expanding a Virtual Disk ===== +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 VirtualBoxbut you can use ''VBoxManage setextradata'' to make the required changes If you want to SSH to your VMfor example
-There is no way to expand a VDI.  What you have to do is create a new VDIboot the virtual machine to a live cd, and copy over the filesystem (either via ''dd'', rsync, etc). +<code>$ 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 
-Create new VDI +$ VBoxManage setextradata Ubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP</code> 
- +Then you can log in to the VM from your own computer using the port you've forwarded above: 
-Attach to virtual machine and boot with System Rescue CD +<code>$ ssh -p 2223 username@172.26.0.200</code>
- +
-create two partitions with fdisk/cfdisk/partedwhatever: +
-  * 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+
-<code>pvcreate /dev/sdb2</code> +
- +
-Create Volume Group from PV: +
-<code>vgcreate VolGroup01 /dev/sdb2</code> +
- +
-Create Logical Volumes in VG: +
-<code>lvcreate -L29G -nLogVol00 VolGroup01 +
-lvcreate -L512M -nLogVol01 VolGroup01</code> +
- +
-Format the new partitions: +
-<code>mkfs.ext3 /dev/VolGroup01/LogVol00 +
-<code>mkswap /dev/VolGroup01/LogVol01</code> +
- +
-<note important>Set the disk label on the boot partition to "/boot" using gparted (fstab loads the boot partition based on its label!)</note> +
- +
-Mount both root partitions: +
-<code>mount /dev/VolGroup01/LogVol00 /mnt/newroot +
-mount /dev/VolGroup00/LogVol00 /mnt/oldroot</code> +
- +
-Copy everything over: +
-<code>rsync -xrlptgoEv --delete /mnt/oldroot/ /mnt/newroot/</code> +
- +
-Mount both boot partitions: +
-<code>mount /dev/sdb1 /mnt/newboot +
-mount /dev/sda1 /mnt/oldboot</code> +
- +
-Copy everything over: +
-<code>rsync -xrlptgoEv --delete /mnt/oldboot/ /mnt/newboot/</code> +
- +
-Force SElinux to relabel all files on boot (or else SElinux will deny you to log in) +
-<code>touch /mnt/newroot/.autorelabel</code> +
- +
-Unmount all mounted logical volumes+
  
-Install GRUB on the new VDI +====== Commonly-used commands ====== 
-<code>grub +===== List your VMs ===== 
-root (hd0,0) +<code>$ VBoxManage list vms</code
-setup (hd0)</code>+===== List your running VMs ===== 
 +<code>$ VBoxManage list runningvms </code>
  
-==== Renaming the new volume group====+====== Updating VirtualBox ====== 
 +=== Stop any running VMs === 
 +Either shut down or "save state" for any running VMs.  First, find any users who have "headless" VMs: 
 +<code># 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</code> 
 +As the user who owns the VM, save the VM's state:
  
-Deativate all logical volumes +<code># su jmagochi 
-<code>lvchange -an /dev/mapper/VolGroup*</code> +$ VBoxManage controlvm nobu savestate 
-Rename old volume group +$ VBoxManage controlvm lims savestate 
-<code>vgrename VolGroup00 VolGroupOld</code> +$ exit 
-Rename new volume group +# su - aorth 
-<code>vgrename VolGroup01 VolGroup00</code>+$ VBoxManage controlvm b0237553-9653-4461-bd0e-d4d316c16d4f savestate 
 +$ exit</code> 
 +=== Update VirtualBox === 
 +<code># yum update VirtualBox-3.2</code> 
 +=== Resume VMs === 
 +<code># su - jmagochi 
 +$ VBoxHeadless -s nobu & 
 +$ VBoxHeadless -s lims & 
 +$ exit 
 +# su - aorth 
 +$ VBoxHeadless -s b0237553-9653-4461-bd0e-d4d316c16d4f -v off &</code>