Como iniciar e parar os convidados do VirtualBox via linha de comando

11

Eu tenho o VirtualBox no Ubuntu 16.04 como host e convidados também. Eu tenho que gerenciar convidados (iniciar, parar apenas) via linha de comando SSH, mas não encontrei nenhuma solução que funcione.

codolom
fonte
Foi mais fácil do que eu pensava. Desculpe por desativado. Existem algumas ferramentas de linha de comando para o kvm. Um deles é "virsh". Para iniciar | parar uma vm, basta usar: $ virsh start | shutdown <vmname> (você pode listar por $ virsh list --all). Você pode usar esta ferramenta no script bash ou no crontab, por exemplo. Obrigado pela ajuda novamente.
Codolom

Respostas:

19

Tudo isso pode ser feito usando-se VBoxManage depois de estabelecer uma conexão ssh:

1. Liste seu VMS:

Primeiro liste suas máquinas virtuais disponíveis com o comando VBoxManage list vms, ilustro isso em minha própria configuração:

andrew@ilium~$ VBoxManage list vms
"Windows 8" {c4422acd-727b-45a0-9eef-65636bcde44d}
"Windows 10" {a8e262be-a032-4918-9085-63185318a979}
"Trusty Tahr Clean Copy" {c99bcf4b-9fea-4971-b190-425cb0b0cdeb}
"Xenial Xerus Clean Copy" {850122b9-c65f-425b-abb3-ffda68e159c6}
"Precise Pangolin Clean Copy" {169086e6-a3f4-42e7-8a89-63dcb273143f}
"Precise Pangolin Working Copy" {ff8312b6-cfae-4877-aa93-d71036d8882c}
"Xenial Xerus for MPlayer" {44902710-4368-4c06-9d24-3cb55328d31c}
"Xenial Xerus for vlc" {a62ad306-17d9-4ee3-8c1a-e4439c3b0e05}
"Xenial Xerus mingw64" {584d8513-6a16-49c7-b020-d657b93d5552}
"Trusty Tahr Working copy..." {433349e9-52eb-4066-bae7-623592871839}
"Xenial Xerus Working copy..." {dda23e74-cdb5-4c7d-8836-31be4129c02a}
andrew@ilium~$ 

Nota: Se você não souber qual VM está realmente em execução, poderá usar VBoxManage list runningvms...

2. Inicie uma VM:

O VBoxManagecomando e as opções necessárias para iniciar uma Máquina Virtual são:

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

Então, para iniciar a VM "Trusty Tahr Clean Copy" no meu exemplo, você usaria:

VBoxManage startvm "Trusty Tahr Clean Copy" --type gui

3. Pare uma VM:

Para parar a VM, você usaria novamente, VBoxManagemas desta vez com a controlvmopção:

  controlvm                 <uuid|vmname>
                            pause|resume|reset|poweroff|savestate|

E no meu exemplo para fechar a VM "Trusty Tahr Clean Copy", o comando seria:

VBoxManage controlvm "Trusty Tahr Clean Copy" savestate

Tudo isso deve funcionar bem com o ssh, que precisa de uma interface gráfica :)

andrew.46
fonte
Eu tentei esses comandos antes de perguntar. Lista VBoxManage vms | runningvms | qualquer outra coisa - resultado vazio Impossível. Os vms são criados no frontend gráfico e estão em execução. Este foi o momento em que pedi ajuda.
Codolom 02/08/16
@ codolom Hmmm .... deve ser a conexão ssh então. Você está se conectando ao seu computador host a partir de outro computador via ssh? Eu presumo que você está usando o comando ssh ...
andrew.46
@ codolom t é curioso, testei as informações na minha resposta no meu próprio sistema via ssh e funcionou perfeitamente. O `VBoxManage list vms` dá um erro?
precisa saber é o seguinte
Eu não sabia que isso deveria ser um problema. Eu tentei corrigi-lo desta maneira: stackoverflow.com/questions/5906441/… Eu odeio essa caixa de texto com Ctrl + Enter :( - Desculpe por falta de linhas. Apliquei este comando no console, mas com os mesmos resultados.
codolom
Sem erros. Saída vazia.
Codolom 02/08/19
2

Para um desligamento normal, use:

VBoxManage controlvm "Name" acpipowerbutton
usuario
fonte