Tengo muchas máquinas de caja virtual en mi Ubuntu12.04, cada vez que apago o reinicio tengo que iniciarlas una por una.
Quiero una ayuda para escribir un script para iniciar automáticamente las máquinas VBox automáticamente al arrancar.
boot
scripts
virtualbox
autostart
Maythux
fuente
fuente
Respuestas:
Puede usar el servicio de inicio automático de VirtualBox. Un buen tutorial que describe cómo hacer esto se publica en el blog "Life of a Geek Admin" .
Los siguientes pasos están adaptados de la publicación de blog vinculada:
Primero debe crear el archivo
/etc/default/virtualbox
y agregar algunas variables.VBOXAUTOSTART_DB que contiene una ruta absoluta al directorio de la base de datos de
inicio automático y VBOXAUTOSTART_CONFIG que contiene la ubicación de la configuración de inicio automático. El archivo debería ser similar a esto:
Ahora necesitamos crear el
/etc/vbox/vbox.cfg
archivo y agregarNota: Si el nombre del archivo
vbox.cfg
no funciona arriba, intente nombrarloautostart.cfg
.Si usted es el único usuario, simplemente puede agregar la línea
default_policy = allow
alvbox.cfg
archivo.Establezca permisos en el directorio para el grupo de usuarios de vbox y asegúrese de que los usuarios puedan escribir en el directorio, así como en bits fijos.
Agregue cada uno de los usuarios al
vboxusers
grupo.(reemplazar
USERNAME
con el nombre de usuario)NOTA : Si ha cambiado los permisos de grupo para el usuario actual, cierre la sesión y vuelva a iniciarla para actualizar los permisos. (crédito @ kR105)
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
y habilite el inicio automático para una VM individual con
Esto creará un
myuserid.start
archivo en el/etc/vbox
directorioAhora reinicie vboxautostart-service para leer los cambios.
Reinicie su sistema y su VM debería comenzar
fuente
Tuve incidentes infelices similares al intentar esta operación en el Vanilla LTS.
En esta versión, el archivo de clave /etc/init.d/vboxautostart-service no estaba instalado.
Hasta donde yo sé, apt-get puso todos los requisitos y VitualBox, así que no puedo decir por qué el archivo 'vboxautostart-service' no se proporcionó también. Pero para superar esto, aquí está mi actualización de la publicación de kdmurray.
1) El archivo / etc / default / virtualbox existía para mí. Por lo tanto, debe agregar vars:
2) Debe crear /etc/vbox/autostart.cfg como lo indica OP.
6b) Necesita obtener un script vboxautostart-service y hacerlo ejecutable.
6c) Alerté al controlador rc.d, pero usé 24 como hora de inicio. Poniendo solo 20 y no se inició. Quizás funcionó incluso antes de que virtualbox funcionara.
Luego reiniciar lanzó la VM correctamente.
fuente
vboxdrv
en las líneas# Required Start
/# Required Stop
porvirtualbox
. Parece que cambiaron el nombre del servicio, por lo que el sistema operativo no puede detectar correctamente las prioridades de inicio / detención. Creo que no necesita el paso 6c si reemplazó esas líneas.Puedes usar
vboxmanage startvm "my virtual machine" --type=headless|gui|sdl
(uno de esos). Use "sin cabeza" si son servidores a los que se conecta por otros medios que no sean la interfaz gráfica de usuario.Para ejecutar estos comandos en el momento correcto durante el arranque, querrá leer en Upstart.
fuente
Después de muchas horas infelices tratando de que los procedimientos de kdmurray anteriores funcionen, sin éxito finalmente encontré un método que funcionó de manera simple.
Primero, mi host Linux (Mint 17) se configuró en el momento del arranque para iniciar sesión automáticamente en mi cuenta principal.
En segundo lugar, utilicé las instalaciones en VirtualBox GUI (v4.3.12) para crear un acceso directo para cada máquina virtual en el escritorio. {haga clic derecho en la VM en la columna izquierda y seleccione "Crear acceso directo en el escritorio"}
A continuación: ya descubrí que al abrir Menú-> Centro de control -> Aplicaciones de inicio -> Agregar y agregar accesos directos del escritorio, los archivos no funcionaban, descubrí en otra respuesta en esta página que la ubicación de las nuevas empresas es / home /USERNAME/.config/autostart, así que hice clic derecho en cada uno de los accesos directos de VM de escritorio y luego los pegué en esa carpeta, sobrescribiendo los archivos basura anteriores. Ahora desarrollaron los iconos 'bonitos' de VirtualBox.
Y efectivamente, al reiniciar la computadora host, las 3 máquinas virtuales se iniciaron automáticamente.
:-)
Bill Williams
PD: por desgracia, todavía me falta algo, porque a menudo las máquinas virtuales no se inician al arrancar, sino que generan un cuadro de diálogo de error que dice que están bloqueadas, incluso si les he dicho que se apaguen antes de reiniciar el host.
fuente
Además de la buena descripción del servicio vboxautostart anterior, puede hacer
para detener automáticamente al invitado en el apagado. Para Ubuntu 14.04 tuve que agregar un sleep 30 a la sección de parada vboxautostart-service, para que espere hasta que el invitado se haya guardado por completo.
fuente
Encontré una forma más simple en Ubuntu 16.04 ejecutando VBox 5.1.34.
Mientras esté en VBox, haga clic con el botón derecho en la máquina virtual en ejecución o inactiva en la lista, seleccione 'Crear acceso directo en el escritorio ". Una vez que vea el icono en su escritorio, abra con cualquier herramienta que le permita ver el comando subyacente creado por VBox (en mi sistema, hago clic derecho y selecciono 'propiedades') Copiar esto al portapapeles.
Abra el programa para actualizar las 'aplicaciones de inicio' y cree una nueva aplicación que se inicie en el momento del arranque, pegando el comando que copió del enlace de escritorio creado por VirtualBox.
fuente
Para iniciar una VM al iniciar sesión en nuestra sesión, es posible que queramos definir un archivo .desktop:
Cuando este archivo se copió o movió a nuestro directorio de inicio automático, se ejecutará después de iniciar sesión:
Ejecutar Virtual Box en el espacio del usuario puede ayudar a evitar efectos secundarios no deseados al iniciarlos durante el arranque (por ejemplo, la VM se ejecuta como root, el tiempo de arranque aumenta increíblemente, ...).
fuente
Esto se puede hacer usando la interfaz de administración de línea de comandos de VirtualBox. Simplemente ejecute el siguiente script al inicio.
Hay un buen tutorial para más información.
fuente
Complemento a la respuesta @kdmurray.
Si obtiene un error en:
Para resolver esto, tuve que crear manualmente los archivos "username" .start y "username" .stop con:
Y cambia de dueño con:
repetición:
luego reinicie el servicio:
comprobar es todo está bien con:
y debería ver el proceso "VBox ..." en una lista, si la máquina virtual se está ejecutando
fuente
También puede obtener el administrador de sesión de gnome descrito aquí. Gnome Session Manager Está en el centro de software o simplemente puede ir a una terminal y escribir
sudo apt-get install gnome-session-common
A continuación, puede crear un pequeño script para ejecutar y utilizar el administrador de sesión de gnome para iniciarlo. Aquí hay un pequeño script de muestra para que pueda comenzar ...
fuente
Así es como inicio mi Centos (nombre de mi máquina virtual) cuando mi máquina host se reinicia. Yo uso crontab para ese trabajo. Aquí está mi entrada crontab:
fuente
Para el servidor Ubuntu 16.04.1 LTS resolví esto haciendo:
Primero active el rc-local.service
Agregue la siguiente línea en
/etc/rc.local
Tenga en cuenta que virtual_box_user es el que puede ver la máquina virtual (que está dispuesto a iniciar) ejecutando el comando:
Ejemplo:
El modificado
/etc/rc.local
debería verse asíSi no elige el propietario correcto de virtualbox, debería ver el error al escribir el comando:
Espero que esto pueda ayudar
fuente
1 - Crear un archivo:
Pega esto:
/bin/su validuser -c "/usr/bin/vboxmanage startvm MACHINENAME2--type headless" /bin/sleep 1
2 - Hacer el archivo vm-start ejecutable:
3 - Editar rc.local
Agrega esto:
4 - Reiniciar.
fuente