# run-virtualbox.include # # Copyright (c) 2009 - OpenSLX GmbH # # This program/file is free software distributed under the GPL version 2. # See http://openslx.org/COPYING # # If you have any feedback please consult http://openslx.org/feedback and # send your feedback to feedback@openslx.org # # General information about OpenSLX can be found at http://openslx.org # # Include script for running the Virtual Box on an OpenSLX client via the # run-virt.sh. The stuff is copied to /etc/opt/openslx/run-virtualbox.include # during stage3. # include general configuration from vmchooser . /etc/opt/openslx/run-virt.include # memory part equal to vmware plugin # percentage of memory to use for virtualbox in standard case permem=30 if [ "${totalmem}" -ge "1600" ]; then permem=40 fi # check if /tmp is on harddisk if grep -qe "/dev/.* /tmp " /proc/mounts ; then permem=60 id44="1" # Hack, if more than 2,5G RAM use 40% of Ram and write vmem into Ram as well # (40% vmware | 40% confdir(vmem...) | 20% host # VMplayer 2+ issue #if [ "${totalmem}" -ge "2500" ]; then # permem=40 # confdir=/dev/shm/vmware/$USER # conffile=${confdir}/run-vmware.conf # mkdir -p /dev/shm/vmware/$USER #fi fi #TODO: ... / 4 * 4 dont make sence mem=$(expr ${totalmem} / 100 \* ${permem} / 4 \* 4) if [ "${id44}" = "1" ]; then memhost=$(expr ${totalmem} - ${mem}) else memhost=$(expr ${totalmem} - ${mem} - ${mem}) fi #permem=40 #mem=$(expr ${totalmem} * ${permem}) if [ "${mem}" -lt "256" ] || [ "${memhost}" -lt "256" ]; then writelog "\tMemory out of range: ${mem} MB (guest) / ${memhost} MB (host)!" writelog "\tMin. 256 MB for host and guest!" exit 1 fi # most of the following does not make much sense yet ... # # virtual fd/cd/dvd and drive devices, floppy b: for configuration # if $floppy_0 from run-virt.include set then fdtest="TRUE" fdtest= fdtest=${floppy_0:+"TRUE"} # if $fdtest not set floppy0="FALSE", else "TRUE" floppy0=${fdtest:-"FALSE"} floppy1="TRUE" floppy1name="/var/lib/virt/vmchooser/loopimg/fd.img" # if $cdrom_0 from run-virt.include set then cdtest="TRUE" cdtest= cdtest=${cdrom_0:+"TRUE"} # if $cdtest not set cdrom0="FALSE", else "TRUE" cdrom0=${cdtest:-"FALSE"} # if $cdrom_1 from run-virt.include set then cdtest="TRUE" cdtest= cdtest=${cdrom_1:+"TRUE"} # if $cdtest not set cdrom1="FALSE", else "TRUE" cdrom1=${cdtest:-"FALSE"} # ide is expected default, test for the virtual disk image type should # be done while creating the runscripts ... ide="TRUE" hddrv="ide" ################################################################################ ### Pepare env and and configure Image ################################################################################ # Current ID, to make sure it won't run into conflicts if started more # as once at the same time, else delete would make the trick... ID=$$ # Don't use $HOME/.VirtualBox! export VBOX_USER_HOME="/tmp/vbox-${USER}-${ID}" # Import Image to VirtualBox, which won't get changed VBoxManage -q registerimage disk ${diskfile} -type immutable # Get ID of VBox Image... diskuid="$(VBoxManage -q showvdiinfo ${diskfile} |grep UUID|awk '{ print $2; }')" # Create Image and register it, so we are able to modify and start it VBoxManage createvm -name "${ID}" -register ################################################################################ ### ### Modify VM ### ################################################################################ ## Add harddisk VBoxManage -q modifyvm "${ID}" -hda ${diskuid} ## Configure VM memory VBoxManage -q modifyvm "${ID}" -memory ${mem} ## Add cddrives ## TODO: merge to new version, where run-virt.include has our drives #VBoxManage -q modifyvm "${ID}" -dvd host:${cdrs} # Enable hardware virtualization # TODO: check if CPU supports hw virtualization #VBoxManage -q modifyvm "${ID}" -hwvirtex on # HDD as boot device VBoxManage -q modifyvm "${ID}" -boot1 disk # enable audio (oss|null|none|alsa|pulse). OSS is backwardcompatible to v2.0 VBoxManage -q modifyvm "${ID}" -audio oss # supress License and Message # TODO: Not clear if we are allowed to do this VBoxManage setextradata global "GUI/LicenseAgreed" "7" VBoxManage setextradata global "GUI/SuppressMessages" ",remindAboutAutoCapture" VBoxManage setextradata global "GUI/RegistrationData" "triesLeft=0" # finally set env for run-virt.sh ################################################################################ # set the variables appropriately (several interfaces with different names) #VIRTCMD=$(which virtualbox 2>/dev/null) VIRTCMD=$(which VBoxManage 2>/dev/null) VIRTCMDOPTS="startvm ${ID} -type gui"