Como iniciar uma VM Virtualbox a partir de um atalho

Às vezes é preciso correr uma ou várias VM rapidamente sem ser preciso de abrir a interface do hypervisor (Virtualbox no meu caso). É o caso quando se trabalha em algum projecto específico ou se precisa de uma VM regularmente para cobrir funcionalidades não existentes no host.
Com o Windows e o Virtualbox há uma forma fácil de o fazer graças às opções do comando Vboxmanage.

Para correr uma VM sem utilizar o GUI (Graphical User Interface – Interface Gráfica), o objectivo é criar um ícone de atalho que execute um ficheiro com as opções para correr a VM desejada.

Vboxmanage é a interface de linha de comandos do Virtualbox. Com ele é possível fazer tudo o que se faz com o GUI e muito mais.

O executável vboxmanage.exe está na pasta de instalação do Virtualbox. No meu caso (e na maioria) é em “C:\Program Files\Oracle\VirtualBox”

Na lista enorme de opções e parâmetros deste comando existe a opção startvm.

Para o detalhe e síntaxe do comando e subcomandos pode consultar o guia do Virtualbox mas é muito melhor interagir directamente com o programa. Para tal, precisa de correr o Command Prompt do windows em modo privilegiado (Administrator).

------------------------------------------
Microsoft Windows [Version 6.1.7601]
 Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\windows\system32>
-----------------------------------------

Navegue para a pasta onde se encontra o comando.

------------------------------------------
C:\windows\system32> cd "\Program Files\Oracle\VirtualBox"

C:\Program Files\Oracle\VirtualBox>
------------------------------------------

Execute o comando vboxmanage startvm

------------------------------------------
 C:\Program Files\Oracle\VirtualBox>vboxmanage startvm
 Usage:

VBoxManage startvm <uuid|vmname>...
 [--type gui|sdl|headless|separate]
------------------------------------------

Para escolhar a máquina virtual a iniciar é possível identifica-la por 2 parâmetros: o nome da VM (vmname) ou o UUID (universal unique identifier). O nome é a forma mais fácil e rápida mas é um pouco arriscada porque o Virtualbox permite alterar o nome da VM e caso tal aconteça o atalho configurado deixa de funcionar.

A segunda opção, UUID, permite maior estabilidade pois este valor mantém-se inalterado desde que a máquina virtual é criada e mantém-se mesmo entre instalações e movendo a VM de um PC a outro.

Mas como saber o UUID da VM pretendida?

O comando vboxmanage tem mais uma vez a solução.

------------------------------------------
C:\Program Files\Oracle\VirtualBox>vboxmanage startvm
 Usage:

VBoxManage startvm <uuid|vmname>...
 [--type gui|sdl|headless|separate]

C:\Program Files\Oracle\VirtualBox>vboxmanage list vms
 "Windows 7" {3e51782a-761d-44c6-b494-94bc9f936c69}
 "Lubuntu X86" {fea1fdc2-f542-4aea-9509-0b4bc0245de2}
 "Lubuntu ADM64bit" {7a7758dc-b333-4c7d-806d-936add2c4494}
 "TinyCoreLinux Core Plus" {dffde65e-f974-470b-a0f6-4663e29945d7}
 "TinyCoreLinux Core Plus Local" {a631a3ba-6b8c-401b-bc3f-35f97ea10842}
 "Lubuntu ADM64bit LOCAL" {d9e83eb2-3b8e-4cc4-b14a-e5620a9a0c27}
 "Lubuntu X86 AMPPS" {8533742a-3524-46bc-8599-863c6288cc18}
------------------------------------------

vboxmanage list vms apresenta a relação entre nomes das máquinas virtuais (tal como aparecem no GUI do Virtualbox) e os UUID das VM.

Supondo que o meu interesse seja correr a VM “Lubuntu X86”. O comando para correr:

------------------------------------------
C:\Program Files\Oracle\VirtualBox>vboxmanage startvm fea1fdc2-f542-4aea-9509-0b4bc0245de2
 Waiting for VM "fea1fdc2-f542-4aea-9509-0b4bc0245de2" to power on...
 VM "fea1fdc2-f542-4aea-9509-0b4bc0245de2" has been successfully started.
------------------------------------------

Dê alguns segundos e verá a máquina virtual a iniciar.

Lubuntu started

Depois disto, já temos o comando certo a executar para correr a VM.

Se receber o erro abaixo é porque não correu o comando como administrador.

-----------------------------------------------
VBoxManage.exe: error: Could not launch a process for the machine ...
 (VERR_UNRESOLVED_ERROR)
 VBoxManage.exe: error: Details: code VBOX_E_IPRT_ERROR (0x80bb0005), component
 MachineWrap, interface IMachine, callee IUnknown
 VBoxManage.exe: error: Context: "LaunchVMProcess(a->session, sessionType.raw(),
 env.raw(), progress.asOutParam())" at line 589 of file VBoxManageMisc.cpp
-----------------------------------------------

Reinicie a Command Prompt como administrador e tente de novo.

A criação do atalho

Para veteranos do Windows esta parte não deve doer muito. O atalho pode ser criado na pasta que desejar, no desktop (ambiente de trabalho) ou mesmo nos itens do menu iniciar. A escolha é sua.

A forma mais rápida para mim é localizar o ficheiro vboxmanage.exe, arrastar com o botão direito do mouse para a pasta onde se vai criar o atalho e de seguida clicar em Create Shortcut Here/Criar Atalho Aqui (as restantes opções no seu computador serão diferentes)

Criar Atalho

O atalho é criado no destino e precisamos apenas de alterar algumas opções. Para tal, clique direito sobre o atalho criado e Propriedades

Na janela que aparece, aba Shortcut/Atalho aumentar na caixa de texto Target o subcomando startvm e o UUID encontrado anteriormente.

Propriedades do Atalho

O comando precisa de ser executado como administrador. Para tal, clica-se em Run as administrator na janela Advanced…

Run as admin

Clique em OK nesta janela e vá à aba General/Geral. Aí, no topo poderá definir o nome do atalho. No meu caso chamei de Lubuntu. Dê aquele que melhor ajuda a identificar a VM.

Nomear Atalho

Clique em OK e o trabalho está terminado. O atalho é criado e basta um executar o atalho para correr a VM sem ser preciso escolher pelo GUI do Virtualbox.

Lubuntu Shortcut

Fica muito difícil explicar este tipo de dicas escrevendo, acho que vou começar a fazer vídeos…

Potencial

Qual a vantagem de ter um atalho ao invés de correr uma VM a partir da interface Virtualbox? Agilidade. Como expliquei no princípio, se usa regularmente determinada máquina virtual para testes, ter um OS diferente ou correr aplicações num ambiente sandbox é muito mais fácil e rápido o duplo click em um atalho.

O atalho criado pode também ser utilizado para iniciar uma VM com qualquer evento do Windows Task Scheduler/Agendador de Tarefas. O melhor exemplo deste caso é correr uma VM ao logo depois de se fazer o login.

Mas o maior potencial está quando se pensa em automação para levantar ambientes completos de várias VMs com um único batch script e a integração com outras aplicações. É assim que o GNS3 integra com o Virtualbox, por exemplo

Referência vboxmanage

Para ter informação detalhada do comando vboxmanage e começar a ter ideias para automatizar o seu ambiente:

https://www.virtualbox.org/manual/ch08.html#vboxmanage-startvm

2 Comments Como iniciar uma VM Virtualbox a partir de um atalho

  1. Alexandre

    Parabéns pelo post Mário Pinho, muito esclarecedor!

    Estou com uma dúvida e talvez você possa me ajudar.
    Tenho uma máquina virtual rodando um sistema linux que estou iniciando automaticamente via linha de comando junto com o windows hospedeiro. Acontece que dessa forma não abre a interface gráfica para acessar o sistema hospede e se tendo abrir pela interface do vbox ele tenta inicia-la novamente e da erro.
    saberia me informar alguma maneira de abrir a interface gráfica dessa máquina que já esta iniciada?
    Grato!

    Reply
    1. Mario Pinho

      Olá Alexandre.
      Acredito que a VM está a iniciar no modo “headless”.
      Se for o caso, abra o GUI do virtualbox, clic-direito sobre a VM que iniciou e clique em “Show” ou use o menu “Machine – Show”.

      Não consegui encontrar o equivalente usando o vboxmanage

      Reply

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *