¿Ejecutar VirtualBox en segundo plano, sin una ventana?


106

Me preguntaba si es posible ejecutar una máquina virtual Ubuntu usando VirtualBox en segundo plano, quiero decir, sin ninguna ventana abierta.

La idea es conectarse a través de SSH al host de Linux, que se estaría ejecutando en segundo plano.

¿Alguien ha hecho algo como esto? ¿Es posible?


¿Te refieres a conectarte vía SSH con el invitado de Linux ? Puede hacer esto muy fácilmente con QEMU, que realmente ejecutará el invitado en su terminal.
Felix

Entonces, también puede estar interesado en la configuración SSH: superuser.com/questions/424083/virtualbox-host-ssh-to-guest
Fabricio PH


1
Dejar abierto ya que esta pregunta se trata mejor como el original; votó cerrar como duplicado en la otra pregunta.
bwDraco

Totalmente de acuerdo con @DragonLord: haga clic aquí para pasar a la otra pregunta y ciérrela como un engaño a esta.
Raystafarian

Respuestas:


91

VBoxManage startvm $VM --type headless iniciará la máquina virtual especificada en segundo plano.

Para apagarlo, solicite el apagado del huésped.


Solo podrá SSH en la máquina si ha configurado la red correctamente. Creo que debe usar un puente para que la VM y su máquina estén en la misma red. Además, VirtualBox seguirá ejecutando la interfaz gráfica de usuario del sistema operativo de destino y puede conectarse a él a través del escritorio remoto, "rdesktop" (obtenga de apt desde que está en ubuntu)
basszero

1
Cierto. Supongo que la VM se ejecuta generalmente a través de la GUI de VirtualBox primero para instalarla y configurarla. Solo use VBoxManage una vez que todo (incluida la red) funcione.
developmentmentalinsanity

Con otro software VM, puedo cerrar la ventana para que no siempre esté abierta y hacer que continúe ejecutándose en segundo plano, pero abra la ventana cuando quiera interactuar con ella. ¿Es esto lo que hace?
JFA

Asegúrese de enviar ssh a la máquina sin -X o -Y, ya que parece que el comando anterior adjunta el proceso al shell, por lo que si sale, la VM aborta.
moritz


23

¡Absolutamente! Estás buscando una instalación sin cabeza (Virtualbox). La forma de iniciar la máquina desde la línea de comandos es algo así como:

VBoxHeadless --startvm Debian --vrdp=off

Sin embargo, necesitará alguna forma de conectarse. Lo que hago es asignar puertos entre el invitado y el host. Con esta configuración, su puerto host 2222 se asignará al puerto 22 de su máquina invitada.

VBoxManage setextradata "Debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP  
VBoxManage setextradata "Debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22  
VBoxManage setextradata "Debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 2222  

Después de eso, puede iniciar sesión con:

ssh localhost -p2222

vm debe estar escuchando conexiones ssh, ¿verdad? Puede valer la pena hacer esto explícito.
Matheus Santana

3

una alternativa a VBoxManage startvm "{VMName}" --type headlesses
VBoxHeadless -startvm "{VMName}"

Curiosamente, acabo de descubrir cómo ejecutar una máquina virtual sin cabeza, sobre RDP.

Nota: al menos en Windows, bloqueará la ventana de comandos. Si necesita continuar usando la ventana de su consola, abra otra para iniciar la VM.

Para apagar la VM, solicita que el SO invitado se apague. VBoxHeadlesslibera la consola cuando el Guest se apaga por completo (puede Ctrl+C, pero creo que puede ser análogo a un restablecimiento completo en una máquina real).


El hecho de que vboxheadless bloquee la consola contradice el propósito de un modo sin cabeza. En Mac OS X (y presumiblemente en Linux y Solaris) el modo sin cabeza funciona cuando envía vboxheadless en segundo plano usando &.
Andrew J. Brehm

Me imagino que hay una manera de hacerlo en Windows, simplemente no la he encontrado. En cualquier caso, una máquina virtual sin cabeza utiliza menos recursos en la computadora servidor que una que ejecuta una GUI completa.
Nombre falso

2

Estoy usando VBoxTool de http://vboxtool.sourceforge.net/ y funciona perfectamente para mí. Puede iniciar automáticamente máquinas virtuales en el arranque y detener / guardar máquinas virtuales en el apagado y proporciona una interfaz de línea de comandos limpia y simple.


2

No creo que el modo perfecto sea lo que está buscando aquí, creo que lo correcto sería VBoxHeadless, que detalles puedes encontrar en el manual. Se ejecuta utilizando una interfaz de comando-lin y se utilizaría, por ejemplo, si una máquina virtual se ejecutara en un servidor pero no se deseaba la visualización del servidor. Podrá usar el escritorio remoto en la máquina (siempre que sepa cómo configurar la opción mediante la línea de comandos).

Recomendaría preguntar esto en los foros de virtualbox. En realidad, primero haga una búsqueda, ya que espero que esto ya se haya pedido.


VBoxManage fue lo correcto, lo siento. Enlace la información en el manual http://www.virtualbox.org/manual/ch08.html


1

Descubrí que el modo sin cabeza parece funcionar bien cuando se ejecuta en segundo plano en Linux (CentOS 5.6), pero pierde el acceso a la funcionalidad RDP siempre que el proceso esté en segundo plano. Haga una 'fg' para volver a poner el proceso en primer plano y se restaurará la funcionalidad RDP. Parece que iniciar vm sin cabeza se logra mejor a través de un script de inicio, donde no se requiere interactividad con la consola.


1

Puede usar VBoxHeadless o (y me pregunto por qué nadie mencionó esto antes que yo) simplemente puede seleccionar una de las opciones de inicio, que ejecutará la VM sin ninguna GUI.

Mantenga presionada la tecla Mayús e inicie la máquina, o haga clic derecho en la máquina y busque algo como "Ejecutar sin salida" en el elemento "Ejecutar"


1

Para comenzar en modo sin cabeza con GUI:

Mantenga presionada la tecla Mayús al iniciar la VM.

Después de eso, también podrá conectarse y desconectarse de la GUI (Uso de Mostrar y Máquina -> Separar opciones de GUI ).


0

He agregado estas líneas en mi .bashrc:

VM='anakim'
alias vm='VBoxManage startvm $VM --type headless'
alias sshvm='ssh -p2222 localhost'

Para el acceso ssh, no necesita cambiar la configuración, simplemente mantenga el NAT y puede configurar la tabla de reenvío de puertos de la siguiente manera:

Name      | Protocol | Host Port | Guest Port
guestssh  | TCP      | 2222      | 22
localhost | TCP      | 8080      | 80

Cuando inserte localhost: 8080 en el navegador de su máquina, se abrirá la página de VM (en el puerto 80).


0

Si la VM se está ejecutando y se muestra la pantalla, puede ocultarla siguiendo estos pasos.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.