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.