#!/bin/bash # Initial setup of configuring VM autostart # if [ "$UID" -ne 0 ] then echo "This script should be run as root." exit 1 fi # # Source config file if [ ! -f ~/.vbconfig ]; then echo "Config File ~/.vbconfig not found!" echo "Run: set-folders to create .vbconfig" exit 1 fi . ~/.vbconfig # Get VM User read -e -p "Enter VM User : " -i "$SUDO_USER" VB_USER # CNT_RUNNING=`su - $VB_USER -c "VBoxManage list runningvms|wc -l"` if [ $CNT_RUNNING -gt 0 ]; then echo echo "Caution: You have VMs running." read -p "Press [Enter] key to continue or Ctrl-C to break ..." fi # AUTOSTART_DIR="/etc/default" AUTOSTARTDB_DIR="/etc/vbox" AUTOSHUTDOWN_TYPE=savestate AUTOSTART_CFG="$AUTOSTART_DIR/virtualbox" VBOXGRP=vboxusers # mkdir -p $AUTOSTART_DIR if [ ! -f $AUTOSTART_CFG ]; then echo "VBOXAUTOSTART_DB=$AUTOSTARTDB_DIR VBOXAUTOSTART_CONFIG=$AUTOSTARTDB_DIR/autostart.cfg SHUTDOWN=$AUTOSHUTDOWN_TYPE SHUTDOWN_USERS=$VB_USER" > $AUTOSTART_CFG fi # # Source config file variables . $AUTOSTART_CFG # Recheck variables and set missing values if [[ $VBOXAUTOSTART_DB == "" ]]; then echo "VBOXAUTOSTART_DB=$AUTOSTARTDB_DIR" >> $AUTOSTART_CFG fi if [[ $VBOXAUTOSTART_CONFIG == "" ]]; then echo "VBOXAUTOSTART_CONFIG=$AUTOSTARTDB_DIR/autostart.cfg" >> $AUTOSTART_CFG fi if [[ $SHUTDOWN == "" ]]; then echo "SHUTDOWN=$AUTOSHUTDOWN_TYPE" >> $AUTOSTART_CFG fi if [[ $SHUTDOWN_USERS == "" ]]; then echo "SHUTDOWN_USERS=$VB_USER" >> $AUTOSTART_CFG fi # Source config file variables (again) . $AUTOSTART_CFG # if [ ! -f $VBOXAUTOSTART_CONFIG ]; then echo "default_policy = allow" > $VBOXAUTOSTART_CONFIG fi # echo "Setting permissions" chgrp $VBOXGRP $VBOXAUTOSTART_DB chmod 1775 $VBOXAUTOSTART_DB usermod -aG $VBOXGRP $VB_USER # This runs as $VB_USER echo "Setting Auto start db path" su - $VB_USER -c "VBoxManage setproperty autostartdbpath $VBOXAUTOSTART_DB" # Reset run levels # Remove echo "Resetting run levels" update-rc.d -f vboxdrv remove update-rc.d -f virtualbox remove update-rc.d -f vboxautostart-service remove update-rc.d -f vboxweb-service remove update-rc.d -f vboxballoonctrl-service remove # Add update-rc.d -f vboxdrv defaults 21 79 update-rc.d -f virtualbox defaults 22 78 update-rc.d -f vboxautostart-service defaults 91 09 update-rc.d -f vboxweb-service defaults 23 77 update-rc.d -f vboxballoonctrl-service defaults 23 77 # echo " Use toggle-autostart script to enable/disable autostart on individual VMs " exit