virtualbox
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
virtualbox [2010/05/22 14:19] – external edit 127.0.0.1 | virtualbox [2011/06/03 13:03] – aorth | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== VirtualBox ===== | + | ====== VirtualBox |
- | VirtualBox is a free/opensource Hypervisor | + | VirtualBox is a free, open-source hypervisor |
* [[http:// | * [[http:// | ||
- | ===== Create a VM ===== | + | * [[http:// |
- | Copy an ISO to your home directory: | + | |
- | < | + | ====== Tips ====== |
- | * SSH to VM server: 172.26.0.200 | + | ===== Optimal settings for Linux guests ===== |
- | < | + | Guest operating systems are not like host operating systems. These settings are generally regarded as improving the performance of guest virtual machines. |
- | * start the virtualbox application | + | |
- | < | + | * Set the IO scheduler |
- | * Follow the wizard to create | + | * Edit the grub command line to set the default IO scheduler, usually in /// |
- | | + | * Install guest additions (VirtualBox |
- | - Network | + | * Run a virtual machine-specific kernel: |
- | | + | * Ubuntu: linux-image-virtual |
+ | * Mount filesystems with '' | ||
===== Networking ===== | ===== Networking ===== | ||
Line 31: | Line 32: | ||
Then you can log in to the VM from your own computer using the port you've forwarded above: | Then you can log in to the VM from your own computer using the port you've forwarded above: | ||
< | < | ||
- | ===== Updating VirtualBox ===== | ||
- | To update VirtualBox to a new version you must shutdown all the running VMs. You can do this by first looking to see which VMs are running ('' | ||
- | < | ||
- | VirtualBox Command Line Management Interface Version 3.0.8 | ||
- | (C) 2005-2009 Sun Microsystems, | ||
- | All rights reserved. | ||
- | |||
- | 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% | ||
- | [jmagochi@biovbox ~]$ sudo / | ||
- | $ yum install virtualbox-3.1 | ||
- | </ | ||
===== Commonly-used commands ===== | ===== Commonly-used commands ===== | ||
==== List your VMs ==== | ==== List your VMs ==== | ||
Line 48: | Line 38: | ||
==== List your running VMs ==== | ==== List your running VMs ==== | ||
< | < | ||
- | ==== Autostart VMs at host boot ==== | ||
- | ---- | ||
- | |||
- | How do I get my VirtualBox Guest VM’s to start and stop when the host system reboots, shutdown, or starts. | ||
- | |||
- | Solution / Answer: | ||
- | |||
- | Create an init.d script so that VirtualBox Guest VM are controlled as a system service. | ||
- | VBoxTool http:// | ||
- | |||
- | http:// | ||
- | |||
- | ---- | ||
- | Create Config File for vboxcontrol service script | ||
- | |||
- | < | ||
- | < | ||
- | The file “machines_enabled” located in “/ | ||
- | |||
- | To get a list of your current Guest VM names execute the following command and notice the name is in ” “: | ||
- | < | ||
- | $ VBoxManage list vms | ||
- | " | ||
- | " | ||
- | " | ||
- | Add Guest VM’s to “machines_enabled” include one VM name per line | ||
- | < | ||
- | # vi / | ||
- | Centos_HDLES_x86_1 | ||
- | Centos_HDLES_x86_3 | ||
- | Centos_HDLES_LAMP</ | ||
- | Add VirtualBox VM Service script | ||
- | |||
- | Create new init.d service script file and give execute permissions | ||
- | |||
- | < | ||
- | < | ||
- | Copy the following code into file “/ | ||
- | |||
- | <code bash> | ||
- | #! /bin/sh | ||
- | # vboxcontrol | ||
- | # | ||
- | # chkconfig: 345 98 02 | ||
- | # description: | ||
- | # processname: | ||
- | # | ||
- | # pidfile: / | ||
- | # | ||
- | ### BEGIN INIT INFO | ||
- | # | ||
- | ### END INIT INFO | ||
- | # | ||
- | # Version 20090301 by Kevin Swanson < | ||
- | # Version 2008051100 by Jochem Kossen < | ||
- | # http:// | ||
- | # | ||
- | # Released in the public domain | ||
- | # | ||
- | # This file came with a README file containing the instructions on how | ||
- | # to use this script. | ||
- | # | ||
- | |||
- | # Source function library. | ||
- | if [ -f / | ||
- | . / | ||
- | elif [ -f / | ||
- | . / | ||
- | else | ||
- | exit 1 | ||
- | fi | ||
- | |||
- | ################################################################################ | ||
- | # INITIAL CONFIGURATION | ||
- | VBOXDIR="/ | ||
- | VM_USER=" | ||
- | USE_NAT=" | ||
- | |||
- | export PATH=" | ||
- | |||
- | if [ -f $VBOXDIR/ | ||
- | . $VBOXDIR/ | ||
- | fi | ||
- | |||
- | SU="su $VM_USER -c" | ||
- | VBOXMANAGE=" | ||
- | |||
- | ################################################################################ | ||
- | # FUNCTIONS | ||
- | |||
- | # Determine if USE_NAT is set to " | ||
- | use_nat() { | ||
- | if [ " | ||
- | return `true` | ||
- | else | ||
- | return `false` | ||
- | fi | ||
- | } | ||
- | |||
- | log_failure_msg() { | ||
- | echo $1 | ||
- | } | ||
- | |||
- | log_action_msg() { | ||
- | echo $1 | ||
- | } | ||
- | |||
- | # Check for running machines every few seconds; return when all machines are | ||
- | # down | ||
- | wait_for_closing_machines() { | ||
- | RUNNING_MACHINES=`$SU " | ||
- | if [ $RUNNING_MACHINES != 0 ]; then | ||
- | sleep 5 | ||
- | wait_for_closing_machines | ||
- | fi | ||
- | } | ||
- | |||
- | ################################################################################ | ||
- | # RUN | ||
- | case " | ||
- | start) | ||
- | if [ -f / | ||
- | |||
- | cat / | ||
- | log_action_msg " | ||
- | $SU " | ||
- | RETVAL=$? | ||
- | done | ||
- | touch / | ||
- | fi | ||
- | ;; | ||
- | stop) | ||
- | # NOTE: this stops all running VM's. Not just the ones listed in the | ||
- | # config | ||
- | $SU " | ||
- | log_action_msg " | ||
- | $SU " | ||
- | done | ||
- | rm -f / | ||
- | wait_for_closing_machines | ||
- | |||
- | ;; | ||
- | start-vm) | ||
- | log_action_msg " | ||
- | $SU " | ||
- | ;; | ||
- | stop-vm) | ||
- | log_action_msg " | ||
- | $SU " | ||
- | ;; | ||
- | poweroff-vm) | ||
- | log_action_msg " | ||
- | $SU " | ||
- | ;; | ||
- | status) | ||
- | echo "The following virtual machines are currently running:" | ||
- | $SU " | ||
- | echo -n "$VM (" | ||
- | echo -n `$SU " | ||
- | echo ' | ||
- | done | ||
- | ;; | ||
- | *) | ||
- | echo " | ||
- | name> | ||
- | exit 3 | ||
- | esac | ||
- | |||
- | exit 0 | ||
- | </ | ||
- | Add vboxcontrol service to chkconfig registry | ||
- | |||
- | < | ||
- | Tell chkconfig to create symlinks for runlevels and activate service vboxcontrol | ||
- | |||
- | < | ||
+ | ===== Updating VirtualBox ===== | ||
+ | === Stop any running VMs === | ||
+ | Either shut down or "save state" for any running VMs. First, find any users who have " | ||
+ | < | ||
+ | jmagochi | ||
+ | jmagochi | ||
+ | aorth 18431 9.7 1.7 998940 36160 ? Sl Oct11 129:54 / | ||
+ | As the user who owns the VM, save the VM's state: | ||
+ | < | ||
+ | $ VBoxManage controlvm nobu savestate | ||
+ | $ VBoxManage controlvm lims savestate | ||
+ | $ exit | ||
+ | # su - aorth | ||
+ | $ VBoxManage controlvm b0237553-9653-4461-bd0e-d4d316c16d4f savestate | ||
+ | $ exit</ | ||
+ | === Update VirtualBox === | ||
+ | < | ||
+ | === Resume VMs === | ||
+ | < | ||
+ | $ VBoxHeadless -s nobu & | ||
+ | $ VBoxHeadless -s lims & | ||
+ | $ exit | ||
+ | # su - aorth | ||
+ | $ VBoxHeadless -s b0237553-9653-4461-bd0e-d4d316c16d4f -v off &</ |