This is my script to make VMs:
Code: Select all
#!/bin/bash#
#Name of file: makevm
#Test if a process is currently running.
# This script will create a VM with 1G of Memory and a 10GB Hard Drive with the same name as the VM. this can of course be changed in the script.
# The Proper Usage is : "makevm 'nameofVM' '/full/path/to/install/dvd.iso'"
# if you don't wish to use a dvd, you can use "none" as the last variable.
## VirtualMachine Variables ##
machine=
dvd=
if [ "$1" != "" ]; then
if [ "$2" != "" ]; then
machine=$1
dvd=$2
VBoxManage createvm --name "$machine" --register
VBoxManage modifyvm "$machine" --memory 1024 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0
VBoxManage createhd --filename "$vdi".vdi --size 10000 --register
VBoxManage storagectl "$machine" --name "IDE Controller" --add ide
VBoxManage storageattach "$machine" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium "$vdi".vdi
VBoxManage storageattach "$machine" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium "$dvd"
else
echo "Proper Usage is: makevm <nameofVM> <dvdpath>"
fi
else
echo "Proper Usage is: makevm <nameofVM> <dvdpath>"
fi
fi
#EOF
and this is the script I use to start VMs. It works very similarly to the one Ian wrote for KVM. I don't have ssmtp set up on my server yet, so it doesnt have the error email functionality yet.
Code: Select all
#!/bin/bash
# Script to start a VirtualBox VM on start up. to use, add this script as a
# cron job in the crontab of the user that controls your VMs.
# This Scripts expects a single parameter, which is the name of your VM.
# So proper Usage is "startVM nameofyourvm"
#list the necessary Variables
VMNAME=$1
VMSTATUS=`VBoxManage list runningvms | grep $VMNAME | wc -l` #don't change this line, this checks whether the VM is running.
sleep 180 # wait 3 minutes for the server to finish booting up so all the VBox Modules have a chance to load
if [ $VMSTATUS = 1 ];
then echo "$VMNAME is Already Running, Aborting Script."
else
echo "$VMNAME is NOT running, starting now."
VBoxManage startvm $VMNAME -type vrdp >/dev/null 2>&1
# This is the command if you are using VirtualBox 3.2. If you have upgraded to VirtualBox 4.0, replace "-type vrdp" with "-type headless"
if [ `VBoxManage list runningvms | grep $VMNAME | wc -l` = "1" ]
then echo "Done."
else
echo "Error Starting VM. Please check the VMNAME Variable, and that you are running this script as your VirtualBox Administrator."
fi
fi
#EOF
To start the VM at start up add the full path to the script as a cronjob to be run by the user that controls your VirtualBox.
so for me i added "/home/russell/scripts/startVM MediaServer" to cron to be run as "russell"
same as always,
type
Code: Select all
nano makevm
OR
nano startVM
then run
Code: Select all
chmod a+x makevm
OR
chmod a+x startVM