Executar o VirtualBox em segundo plano, sem uma janela?


106

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

A idéia é conectar via SSH ao host Linux, que seria executado em segundo plano.

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


Você quer dizer conectar via SSH ao convidado linux ? Você pode fazer isso com muita facilidade com o QEMU, que realmente executará o hóspede no seu terminal.
Felix #

Então você também pode estar interessado na configuração SSH: superuser.com/questions/424083/virtualbox-host-ssh-to-guest
Fabricio PH


11
Deixar em aberto, pois esta questão é melhor tratada como o original; votou para fechar como duplicado na outra questão.
precisa saber é o seguinte

Concordo totalmente com o @DragonLord - clique aqui para ir para a outra pergunta e fechá-la como um tolo para esta.
Raystafarian

Respostas:


92

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

Para desligá-lo, solicite o desligamento do convidado.


Você só poderá fazer o SSH na máquina se tiver configurado a rede corretamente. Eu acho que você precisa usar uma ponte para que a VM e sua máquina estejam na mesma rede. Além disso, VirtualBox ainda irá executar o gui do OS alvo e você pode se conectar a ele via desktop remoto, "rdesktop" (começa a partir de apt desde que você está no ubuntu)
basszero

11
Verdadeiro. Presumo que a VM seja executada geralmente pela GUI do VirtualBox primeiro para instalá-la e configurá-la. Use o VBoxManage apenas quando tudo (incluindo a rede) funcionar.
developmentalinsanity

Com outro software de VM, posso fechar a janela para que ela nem sempre esteja aberta e que continue sendo executada em segundo plano, mas abra a janela quando desejar interagir com ela. É isso que isso faz?
JFA 01/07

Certifique-se de ssh na máquina sem -X ou -Y, pois parece que o comando acima anexa o processo ao shell; portanto, se você sair, a VM será interrompida.
Moritz


23

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 portas entre convidado e host. Com essa configuração, a porta do host 2222 será mapeada para a porta 22 da 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 fazer login com:

ssh localhost -p2222

vm deve estar ouvindo conexões ssh, certo? Pode valer a pena tornar isso explícito.
Matheus Santana

3

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

Curiosamente, acabei de descobrir como executar uma VM sem cabeça, através do RDP.

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

Para desligar a VM, solicite o encerramento do SO convidado. VBoxHeadlesslibera o console quando o Convidado está totalmente desligado (você pode Ctrl+C, mas acho que pode ser o análogo a uma reinicialização total em uma máquina real).


O fato de o vboxheadless bloquear o console anula muito a finalidade de um modo sem cabeça. No Mac OS X (e presumivelmente no Linux e Solaris), o modo sem cabeça funciona quando você envia o vboxheadless para o segundo plano usando &.
Andrew J. Brehm

Imagino que exista uma maneira de fazer isso no Windows, mas ainda não o encontrei. De qualquer forma, uma vm sem cabeça certamente usa menos recursos no computador servidor do que uma que executa uma GUI completa.
Nome falso

2

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


2

Não acho que o modo perfeito seja exatamente o que ele está procurando aqui, acho que o correto seria o VBoxHeadless, que detalhes 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 sendo executada em um servidor, mas a exibição não fosse desejada pelo servidor. Você poderá fazer o desktop remoto na máquina (desde que você saiba como definir a opção via linha de comando).

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


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


2

Para iniciar no modo sem cabeça usando a GUI:

Mantenha a tecla Shift pressionada ao iniciar a VM.

Depois disso, você também poderá se conectar e desconectar da GUI (Usando Mostrar e Máquina -> desanexar opções da GUI ).


1

Descobri que o modo decapitado 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 background. Faça um 'fg' para trazer o processo de volta ao primeiro plano, e a funcionalidade RDP é restaurada. Parece que iniciar o vm decapitado é melhor realizado através de um script init, em que a interatividade com o console não é necessária.


1

Você pode usar o 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 executará a VM sem nenhuma GUI.

Mantenha pressionada a tecla Shift e inicie a máquina, ou clique com o botão direito na máquina e procure algo como "Executar sem saída" no item "Executar"


0

Eu adicionei estas linhas no meu .bashrc:

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

Para acesso ssh, você não precisa alterar a configuração, basta manter o NAT e pode configurar a tabela de encaminhamento de porta da seguinte maneira:

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

Quando você insere localhost: 8080 no navegador da máquina, a página da VM (na porta 80) será aberta.


0

Se a VM estiver em execução e a tela estiver sendo exibida, você pode ocultá-la executando as seguintes etapas.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.