La mejor forma de iniciar una maquina virtual de VirtualBox al iniciar el sistema operativo host, y a su vez, apagarla cuando éste se apague, es con un script de init.d
Creamos un archivo para guardar el script:
sudo nano /etc/init.d/VM
Copiamos el siguiente contenido en el archivo y guardamos con F2.
#! /bin/sh
# /etc/init.d/VM
#
#Editar las siguientes variables
VMUSER=vbox
VMNAME="NombreDeLaVM"
case "$1" in
start)
echo "Starting VirtualBox VM..."
sudo -H -b -u $VMUSER vboxmanage startvm "$VMNAME" --type headless
;;
stop)
echo "Saving state of Virtualbox VM..."
sudo -H -b -u $VMUSER vboxmanage controlvm "$VMNAME" savestate
;;
*)
echo "Usage: /etc/init.d/VM {start|stop}"
exit 1
;;
esac
exit 0
Nota: la acción de stop del script, no apaga la VM, sino que guarda el estado y la cierra.
Le damos permisos de ejecución al script:
sudo chmod +x /etc/init.d/VM
Ahora, le decimos al script que la máquina virtual sea lo último que se inicie, y lo primero en apagarse.
sudo update-rc.d VM defaults 99 01
PD: Encontré este script acá, pero le hice un par de modificaciones para mejorarlo.
