Iniciar virtualbox de forma automática en LINUX
Un molesto problema con el que me suelo encontrar muchas veces cuando trabajo con VirtualBox es la imposibilidad de iniciarlo de forma automática en LINUX, lo que en inglés se denomina headless mode for virtual machines.
Es un problema engorroso, ya que cada vez que se reinicia el sistema anfitrión debido a una actualización, fallo del sistema, corte de luz, fallo humano, etc. hay que entrar en el servidor e iniciar la máquina de forma manual.
Si el problema sucede de madrugada, la maquina virtual estará toda la noche sin funcionar así que vamos a explicar detenidamente como iniciar Virtualbox de forma automática en Linux.
Este es el procedimiento probado en CentOS / Red hat Enterprise LINUX 7, 8, 9 y en Ubuntu 14.04, 16.04 y 18.04, 20.04, 22.04 y 24.04.
Procedimientos a realizar como usuario Root
1) Entraremos en la consola de comandos como root y crearemos un fichero denominado «virtualbox» en la ruta /etc/default/
sudo nano /etc/default/virtualbox
Dentro de este fichero pondremos lo siguiente:
VBOXAUTOSTART_DB=/etc/vbox
VBOXAUTOSTART_CONFIG=/etc/vbox/autostart.cfg
2) Crearemos el fichero autostart.cfg dentro de la ruta /etc/vbox/
sudo nano /etc/vbox/autostart.cfg
Dentro de este fichero pondremos lo siguiente:
default_policy = deny
# Create an entry for each user allowed to use autostart
usuario con el que arrancamos la maquina virtual = {
allow = true
}
3) Ejecutamos los siguientes comandos:
sudo chgrp vboxusers /etc/vbox
sudo chmod 1775 /etc/vbox
sudo usermod -aG vboxusers usuario con el que arrancamos la maquina virtual
Procedimientos a realizar como usuario con el que deseamos iniciar virtualbox de forma automática
1) Posteriormente, salimos de la cuenta de root y nos logueamos con el usuario con el que arrancamos la maquina virtual. Pondremos lo siguiente:
VBoxManage setproperty autostartdbpath /etc/vbox (tenemos que volver a escribir este comando debido a que es imprescindible que cada usuario que quiera ejecutar una máquina virtual indique la ruta a la base de datos de inicio de máquinas virtuales).
VBoxManage list vms (con este comando hacemos un listado de todas las maquinas virtuales instaladas)
2) Ahora para iniciar virtualbox de forma automática en LINUX, escribiremos los siguientes:
VBoxManage modifyvm nombre-que-nos-devuelve-el-listado-de-la-maquina-virtual-que-deseamos-ejecutar — (esto son dos guiones, no uno)autostart-(esto es solo un guión)enabled on
Ojo, este último comando va a fallar si lo copias y pegas directamente desde este artículo en tu consola de comandos. Esto es debido a que WordPress (el sistema con el que funciona esta web) cambia internamente los símbolos «–» y los deja como solo un guión, así que tendrás que escribir a mano los símbolos de los guiones (son los mismos símbolos que los de la «resta»).
3) Reiniciamos el servidor
Si todo ha ido bien, a los pocos minutos de reiniciar el servidor ya podremos ver nuestra máquina virtual funcionando e iniciar Virtualbox de forma automática en LINUX cada vez que el equipo se reinicie.
si el usuario con el que inicio la maquina virtual es el root, que se puede hacer?
me devuelve este mensaje:
VBoxManage: error: The machine ‘
VBoxManage: error: Active Directory’ is already locked for a session (or being unlocked)
VBoxManage: error: Details: code VBOX_E_INVALID_OBJECT_STATE (0x80bb0007), component MachineWrap, interface IMachine, callee nsISupports
VBoxManage: error: Context: «LockMachine(a->session, LockType_Write)» at line 554 of file VBoxManageModifyVM.cpp
Ayuda.
funciona perfecto. Muchas gracias por el aporte
Fantástico. tio. Sobre todo el último detalle de explicar lo de los guiones.
Así da gusto.
Muchas gracias por tomarte tu tiempo para enseñar a los que no sabemos
Muchas gracias a ti por entrar en nuestro blog. El conocimiento compartido hace un mundo mejor.