Parece que no puedo hacer que mi VM se ejecute al inicio.
Probé las "aplicaciones de inicio" y update-rc.d sin suerte.
sudo update-rc.d startvms defaults 99 10
Esto creó todos los enlaces simbólicos apropiados para los diferentes niveles de ejecución, pero la VM todavía no se inicia.
Aquí está mi script startvms:
#!/bin/bash
### BEGIN INIT INFO
# Provides: startvms
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start my VMs at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
case "$1" in
start)
echo "Starting"
nohup VBoxHeadless --startvm "UbuntuServer" &
;;
stop)
echo "Stopping $DESC"
VBoxManage controlvm "UbuntuServer" poweroff
;;
restart|force-reload)
echo "Restarting $DESC"
VBoxManage controlvm "UbuntuServer" poweroff
nohup VBoxHeadless --startvm "UbuntuServer" &
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
¿Qué estoy haciendo mal?
virtualbox
startup
Capdragon
fuente
fuente
VBoxManage startvm --type headless "UbuntuServer"
lugar delVBoxHeadless
comando?su -c 'VBoxHeadless --startvm <MACHINE>'
.Respuestas:
Esto es lo que finalmente funcionó!
1) Crear el archivo de script de inicio
en /etc/init.d -
sudo nano /etc/init.d/StartVM
.Copie Pegue lo siguiente en el archivo y reemplace "Mi nombre de VM" por su nombre de VM:
2) Dar permiso ejecutable al script
con
sudo chmod +x /etc/init.d/StartVM
.3) Indique al script que se ejecute al inicio.
diga al script que sea el primero en apagarse y el último en iniciarse.
sudo update-rc.d StartVM defaults 99 01
fuente
VBoxManage startvm --type headless
sería mejor?Para su información, esto funciona en Opensuse sin nohup.
fuente
Esto funciona bien con el servidor Ubuntu 12.04 y VirtualBox 4.2.20.
Y
y
como se indicó en una respuesta anterior.
fuente
Como mencionas que VBoxHeadless funciona bien si lo escribe desde la línea de comando de un terminal pero no inicia ninguna VM cuando se inicia desde un script de inicio, supongo que está buscando alguna variable de entorno que se define cuando ejecuta un shell en su terminal pero indefinido en el entorno de script de inicio (que está básicamente vacío, excepto los parámetros dados en la línea de comando del núcleo).
¿Puedes intentar reemplazar las invocaciones VBoxHeadless en el script con esto?
Aquí "nombre de usuario" y la ruta del directorio de inicio deben cambiarse para que coincidan con las del usuario que utiliza para iniciar la VM.
Si funciona, es posible que desee utilizar su -l para funcionar VBoxHeadless en lugar de esta env truco.
fuente
su -l
- ¡ese es un buen punto!En las versiones recientes de Virtualbox (4.2.0 en adelante) no necesita rodar su propio script para iniciar automáticamente una VM, pero requiere algo de configuración. Consulte la sección 9.24 del Manual de Virtualbox " Inicio de máquinas virtuales durante el inicio del sistema "
Lamentablemente, el manual solo da instrucciones generales y no se ha actualizado en años. Encontré esta publicación en los foros de virtualbox con algunos detalles adicionales.
Podrías poner una línea en rc.local para iniciar tu servidor, pero si quieres hacerlo sigue leyendo de manera "oficial".
Agregue estas líneas a / etc / default / virtualbox:
Edite /etc/vbox/vboxautostart.cfg (este ejemplo niega el permiso de inicio automático para todos los usuarios excepto el usuario "Bob":
Agregue el grupo vboxusers a / etc / vbox y un bit fijo:
Agregue todos los usuarios que usarán virtualbox al grupo "vboxusers", por ejemplo:
Cada usuario que quiera habilitar el inicio automático para máquinas individuales debe establecer la ruta al directorio de la base de datos de inicio automático con:
Luego, los usuarios pueden configurar máquinas virtuales para que se inicien automáticamente y configurar cómo se detendrán (por ejemplo, savestate, acpishutdown) con:
Lo anterior funcionó para mí con Virtualbox 5, instalado desde el repositorio virtualbox.org.
fuente
uno también puede querer configurar directamente el puerto cuando se usa vrdp ... comentar la respuesta principal, que se divide bien para usar diferentes scripts para diferentes vms
fuente
Wow ... Estoy viendo todas estas soluciones, que parecen un poco complejas, pero esta es mi tercera computadora portátil en la que terminé simplemente escribiendo:
VBoxHeadless -s "Ubuntu Server"
en mi archivo rc.local en el directorio / etc / y eso funcionó bastante bien. Ejecuta la máquina virtual automáticamente al reiniciar.
fuente