From 416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5 Mon Sep 17 00:00:00 2001 From: Sebastian Schmelzer Date: Thu, 2 Sep 2010 17:50:49 +0200 Subject: change dir structure --- src/os-plugins/plugins/virtualbox/XX_virtualbox.sh | 98 ++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 src/os-plugins/plugins/virtualbox/XX_virtualbox.sh (limited to 'src/os-plugins/plugins/virtualbox/XX_virtualbox.sh') diff --git a/src/os-plugins/plugins/virtualbox/XX_virtualbox.sh b/src/os-plugins/plugins/virtualbox/XX_virtualbox.sh new file mode 100644 index 00000000..b54b4bec --- /dev/null +++ b/src/os-plugins/plugins/virtualbox/XX_virtualbox.sh @@ -0,0 +1,98 @@ +# Copyright (c) 2009..2010 - RZ Uni Freiburg +# Copyright (c) 2009..2010 - 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 + + # finished ... + [ $DEBUGLEVEL -gt 0 ] && echo "done with 'virtualbox' os-plugin ..." + fi +else + [ $DEBUGLEVEL -gt 0 ] \ + && echo " * Configuration of 'virtualbox' plugin failed" +fi -- cgit v1.2.3-55-g7522