Rodando uma VM em background no VirtualBox
Overview
Você já desejou que suas máquinas virtuais no VirtualBox ficassem operantes em background, mas pensou que era impossível? Surpresa! Neste post, mostro um truque simples para fazer exatamente isso. Com alguns passos rápidos, sua VM estará pronta para funcionar sem interrupções, mesmo quando você não estiver olhando. Além disso, te ensinarei como iniciar e desligar sua máquina virtual automaticamente, tornando sua vida ainda mais fácil. Preparado para dar adeus ao Hyper-V e tornar seu VirtualBox mais eficiente do que nunca? Vamos lá!
Ha pouco tempo resolvi abandonar o Hyper-V e voltar a utilizar o VirtualBox. Para o que preciso ele é mais simples e prático, mas não tem uma funcionalidade que é essencial: A capacidade de manter as VMs ligadas em background. Bom, não tem a funcionalidade, mas não quer dizer que ele não consiga deixar uma VM rodando em background. Neste post vou mostrar como fazer isso e dar uma sugestão de como ligar/desligar a vm automaticamente.
A primeira coisa que você tem que fazer é: localizar o arquivo VBoxManage.exe. Geralmente ele está no diretório “c:\Program Files\Oracle\VirtualBox”. Então, para o post, vou utilizar este caminho, mas você deve altera-lo, caso o seu seja diferente.
O comando para iniciar a maquina virtual sem a parte visual, fazendo com que ela fique rodando no background é um tipo de execução chamado “headless”.
Ligar a maquina virtual
Para ligar uma VM assim, basta utilizar o comando:
"c:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "nome da sua vm" –type headless
Listar maquinas virtuais instaladas
O nome da VM é, literalmente, aquele que você colocou quando a criou. Caso não lembre, existe um comando para listar as maquinas virtuais disponíveis:
"c:\Program Files\Oracle\VirtualBox\VBoxManage.exe" list vms
O comando acima vai listar as maquinas disponíveis, mostrando o nome e o id de cada uma.
Desligar a maquina virtual
Desligar a VM utilizando linha de comando também é algo fácil, basta utilizar o comando:
"c:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm "nome da sua vm" poweroff soft
O comando acima faz com que a VM em questão seja desligada e o argumento “soft” faz com que o VirtualBox não desligue a maquina “puxando o cabo da tomada”. Todavia, vale lembrar que isso faz com que o processo demore um pouco mais (porém é mais seguro).
Inicialização automática da VM
Para fazer com que a maquina seja inicializada automaticamente quando o computador (físico) ligar, você pode:
1. Pasta Inicializar do Windows
- Aperte Windows + R, digite: shell:startup e aperte enter;
- Na pasta que vai abrir, crie um arquivo e insira o comando de iniciar a maquina (veja acima);
- Salve este arquivo como iniciar_vm**.bat** (pode mudar o nome, se preferir. desde que a extensão seja .bat)
Pronto. Sua VM irá iniciar automaticamente e ficará rodando em background!
2. Agendando tarefas
A segunda maneira seria agendando uma tarefa no Windows. O Agendador de tarefas é uma ferramenta muito útil e muito grande para ser totalmente explicada neste post. Então vou focar apenas na criação da tarefa específica.
- Aperte Windows + R, digite: taskschd.msc e aperte enter;
- Clique no menu actions (ações) e escolha a opção “create basic task” (criar tarefa básica);
- Na janela que abrir, você deve informar o nome da tarefa, que pode ser qualquer coisa. Este nome é para te ajudar a manter as coisas organizadas. Sugiro algo como “Inicia VM xpto automaticamente”. Também existe um campo de descrição, mas ele é opcional;
- Quando preencher os campos, clique em Next (Próximo)
- Será exibida uma lista de tipos de agendamento. Escolha a opção “When the computer starts” (Quando o computador iniciar) e clique em Next (Próximo);
- Na lista de ações, selecione “Start a program” (Iniciar um programa) e clique em Next (Próximo);
- Esta é a tela mais importante para o que estamos fazendo. No campo “Program/script” (Programa/Script), informe o endereço: “c:\Program Files\Oracle\VirtualBox\VBoxManage.exe”. Inclua as aspas, pois os diretórios possuem espaços no nome. (Lembre-se de adaptar o caminho para o arquivo, se ele ficar em um local diferente na sua maquina);
- No campo “Add arguments (optional)” (Argumentos (opcionais)), informe a outra parte da linha de comando: startvm “nome da sua vm” –type headless;
- Quando terminar, clique em próximo e depois em Finish (Concluir).
Pronto! Quando você ligar seu computador, esta tarefa será executada automaticamente e a sua VM começará a rodar em background.
Extra!
Se você optar por este método, pode criar também uma tarefa que será executada no momento em que o computador for desligado.
Para isso, repita o passo a passo acima, mas no passo 5 escolha a opção: “When a specific event is logged” (Quando um evento específico ocorrer) e clique em Next (Próximo) e preencha os campos da próxima tela com os dados abaixo:
- Log: System
- Source: USER32
- Event ID: 1074
Clique em Next (Proximo).
Agora basta terminar de seguir o passo a passo anterior até o passo 8. Neste ponto, ao invés de colocar os argumentos para iniciar a maquina, você vai colar os argumentos necessários para o comando de desligar a VM (controlvm “nome da sua vm” poweroff soft).
Conclua a operação e pronto: Agora você tem duas tarefas sendo executadas automaticamente: a de fazer a maquina virtual rodar em background e a de desliga-la!
(Dependendo da VM que você criar, pode ser que ela segure o processo de shutdown. Vale testar.)
Existe uma terceira forma, que é utilizando as politicas de grupo do Windows, mas vou deixar este método para um momento futuro.
Espero ter ajudado!