Questão Executar o VirtualBox em segundo plano, sem uma janela?


Eu queria saber se é possível rodar uma máquina virtual Ubuntu usando o VirtualBox em segundo plano, quer dizer, sem nenhuma janela aberta.

A ideia é conectar via SSH ao host Linux, que estaria rodando em background.

Alguém já fez algo assim? É possível?


103


origem


Você quer dizer conectar via SSH ao linux convidado? Você pode fazer isso muito facilmente com o QEMU, que realmente executará o convidado em seu terminal. - Felix
Então você também pode estar interessado na configuração do SSH: superuser.com/questions/424083/virtualbox-host-ssh-to-guest - Fabricio PH
possível duplicata de Como posso iniciar uma VM sem obter uma janela? - Randall Flagg
Deixando aberto como esta questão é melhor tratada como o original; votou para fechar como duplicado na outra questão. - bwDraco
Concordo completamente com @DragonLord - Clique aqui para ir para a outra pergunta e fechá-la como uma falha para esta. - Raystafarian


Respostas:


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

Para desligá-lo, solicite o desligamento do hóspede.


87



Você só poderá fazer SSH na máquina se tiver configurado a rede corretamente. Eu acho que você precisa usar bridged para que a VM e sua máquina estejam na mesma rede. Além disso, o VirtualBox ainda irá executar o gui do sistema operacional de destino e você pode se conectar a ele via desktop remoto, "rdesktop" (obter do apt desde que você está no Ubuntu) - basszero
Verdade. Eu suponho que a VM é executada geralmente através da interface do VirtualBox primeiro para obtê-lo instalado e configurado. Use o VBoxManage apenas quando tudo funcionar (incluindo a rede). - developmentalinsanity
Com outro software de VM, posso fechar a janela para que ela não esteja sempre aberta e continue a ser executada em segundo plano, mas abra a janela quando quiser interagir com ela. É isso que isso faz? - JFA
Certifique-se de fazer o ssh na máquina sem -X ou -Y, já que eles parecem fazer com que o comando acima conecte o processo ao shell; portanto, se você sair, a VM será anulada. - moritz


Isso é construído no VirtualBox 4.2.

Simplesmente mantenha pressionada a tecla Shift ao iniciar a VM no gerenciador.

https://blogs.oracle.com/fatbloke/entry/what_s_new_in_oracle


59



Brilhante, obrigado! :) - Chiramisu
Atualização: no VirtualBox 5.1 você ainda tem um menu drop-down no canto direito do botão iniciar no gerenciador. Este menu está disponível apenas se a VM estiver parada. - Titou


Absolutamente! Você está procurando uma instalação sem cabeça (Virtualbox). A maneira de iniciar a máquina a partir da linha de comando é algo como:

VBoxHeadless --startvm Debian --vrdp=off

No entanto, você precisará de alguma maneira de se conectar. O que faço é mapear as portas entre convidado e host. Com essa configuração, a porta do host 2222 será mapeada para a porta 22 de sua máquina convidada.

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  

Depois disso, você pode entrar com:

ssh localhost -p2222

23



vm deve estar ouvindo as conexões ssh, certo? Pode valer a pena explicitar isso. - Matheus Santana


uma alternativa para VBoxManage startvm "{VMName}" --type headless é
VBoxHeadless -startvm "{VMName}"

Curiosamente, acabei de descobrir como executar uma VM sem cabeça, por RDP.

Nota - Pelo menos no Windows, ele irá bloquear sua janela de comando. Se você precisar continuar usando a janela do console, abra outra para iniciar a VM.

Para desligar a VM, você solicita que o sistema operacional convidado seja desligado. VBoxHeadless libera o console quando o Visitante está completamente desligado (você pode Ctrl+C, mas eu acho que pode ser analogus a um hard reset em uma máquina real).


2



O fato de que vboxheadless bloqueia o console derrota muito a finalidade de um modo sem cabeça. No Mac OS X (e presumivelmente no Linux e no Solaris), o modo sem cabeça funciona quando você envia o vboxheadless para o segundo plano usando &. - Andrew J. Brehm
Eu imagino que há uma maneira de fazer isso no Windows, eu simplesmente não o encontrei. Em qualquer caso, um vm sem cabeça certamente usa menos recursos no computador servidor do que um executando uma GUI completa. - Fake Name


Estou usando o VBoxTool de http://vboxtool.sourceforge.net/ e funciona perfeitamente para mim. Ele pode iniciar automaticamente as VMs na inicialização e parar / salvar VMs no desligamento e fornece uma interface de linha de comando simples e limpa.


2





Eu não acho que o modo sem costura é bem o que ele está procurando aqui, acho que a coisa certa seria VBoxHeadless quais detalhes de você pode encontrar no manual. Ele é executado usando uma interface de linha de comando e seria usado, por exemplo, se uma máquina virtual estivesse em execução em um servidor, mas a exibição não fosse desejada do servidor. Você poderá usar a área de trabalho remota na máquina (desde que você saiba como definir a opção via linha de comando).

Eu recomendaria pedir isso nos fóruns do VirtualBox. Na verdade, faça uma busca primeiro, pois espero que isso já tenha sido feito.


VBoxManage foi a coisa certa, desculpe. Vincule as informações no manual http://www.virtualbox.org/manual/ch08.html


2





Descobri que o modo headless parece funcionar bem ao fazer o background no Linux (CentOS 5.6), mas você perde o acesso à funcionalidade RDP, desde que o processo seja em segundo plano. Faça um 'fg' para trazer o processo de volta ao primeiro plano e a funcionalidade do RDP é restaurada. Parece que iniciar o vm sem cabeça é melhor realizado por meio de um script de inicialização, em que a interatividade com o console não é necessária.


1





Você pode usar VBoxHeadless ou (e eu me pergunto por que ninguém mencionou isso antes de mim), você pode simplesmente selecionar uma das opções de inicialização, que irá executar a VM sem qualquer GUI.

Segure a tecla shift e inicie a máquina ou clique com o botão direito do mouse na máquina e procure por algo como "Executar sem saída" no item "Executar".


1