# Copyright (c) 2009..2010 - RZ Uni Freiburg # Copyright (c) 2009..2012 - 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 # # script is included from init via the "." load function - thus it has all # variables and functions available # include default directories . /etc/openslx.conf CONFFILE=/initramfs/plugin-conf/virtualbox.conf PLUGINCONFDIR=/mnt/${OPENSLX_DEFAULT_CONFDIR}/plugins/virtualbox PLUGINDIR=/mnt/${OPENSLX_DEFAULT_DIR}/plugin-repo/virtualbox VIRTDIR=/mnt/${OPENSLX_DEFAULT_VIRTDIR}/virtualbox # check if the configuration file is available if [ -e ${CONFFILE} ]; then # load needed variables . ${CONFFILE} # Test if this plugin is activated... more or less useless with the # new plugin system if [ $virtualbox_active -ne 0 2>/dev/null ]; then [ $DEBUGLEVEL -gt 0 ] && echo "executing the 'virtualbox' os-plugin ..."; # load general configuration . /etc/initramfs-setup # get source of virtualbox image server (get type, server and path) if strinstr "/" "${virtualbox_imagesrc}" ; then vbimgprot=$(uri_token ${virtualbox_imagesrc} prot) vbimgserv=$(uri_token ${virtualbox_imagesrc} server) vbimgpath="$(uri_token ${virtualbox_imagesrc} path)" fi if [ -n "${vbimgserv}" ] ; then # directory where qemu images are expected in mnttarget=${VIRTDIR} # mount the virtualbox image source readonly (ro) fsmount ${vbimgprot} ${vbimgserv} ${vbimgpath} ${mnttarget} ro else [ $DEBUGLEVEL -gt 1 ] && \ error " * Incomplete information in variable ${virtualbox_imagesrc}." \ nonfatal fi # copy virtualization include files to config dir testmkd ${PLUGINCONFDIR} cp ${PLUGINDIR}/*.include ${PLUGINCONFDIR} # copy ${CONFFILE} to ${PLUGINCONFDIR} just in case cp ${CONFFILE} ${PLUGINCONFDIR} # # TODO: create rawdisk if requested # # create raw disk # for part in $(grep -qE " 44 | 45 " /etc/disk.partition); do # case "${part}" in # * 45 *) # id4x=$(grep " 45 " /etc/disk.partition | grep -E " 44 | 45 " \ # | awk '{print $1}' | cut -c -8) # break # ;; # * 44 *) # id4x=$(grep " 44 " /etc/disk.partition | grep -E " 44 | 45 " \ # | awk '{print $1}' | cut -c -8) # break # ;; # esac # if [ -n "${id4x}" ]; then # mount --bind /dev /mnt/dev # chroot /mnt VBoxManage -q internalcommands createrawvmdk -filename \ # ${OPENSLX_DEFAULT_CONFDIR}/plugins/virtualbox/raw.vmdk -rawdisk ${id4x} # chmod 777 ${OPENSLX_DEFAULT_CONFDIR}/plugins/virtualbox/raw.vmdk # umount -f /mnt/dev 2>/dev/null # fi # copy and activate init file cp ${PLUGINDIR}/vbox-slx /mnt/etc/init.d/ chmod 755 /mnt/etc/init.d/vbox-slx rllinker "vbox-slx" 20 2 mknod -m 0660 /dev/vboxdrv c 10 59 chown root:vboxusers /dev/vboxdrv # setting the base samba configuration [ -f /mnt/opt/openslx/plugin-repo/vmchooser/smb.conf -a -f /mnt/usr/sbin/smbd ] && \ sed -e "s,NWIF,vboxnet0,;s,PIDDIR,/var/run/vbox," \ /mnt/opt/openslx/plugin-repo/vmchooser/smb.conf \ >/mnt/etc/vbox/smb.conf # finished ... [ $DEBUGLEVEL -gt 0 ] && echo "done with 'virtualbox' os-plugin ..." fi else [ $DEBUGLEVEL -gt 0 ] \ && echo " * Configuration of 'virtualbox' plugin failed" fi