Jak uruchamiać i zatrzymywać gości VirtualBox za pomocą wiersza poleceń

11

Mam VirtualBox na Ubuntu 16.04 jako host i goście. Muszę zarządzać gośćmi (start, stop tylko) za pomocą wiersza poleceń SSH, ale nie znalazłem żadnego działającego rozwiązania.

codolom
źródło
To było łatwiejsze niż myślałem. Przepraszam za OFF. Istnieje narzędzie wiersza polecenia dla kvm. Jednym z nich jest „virsh”. Aby rozpocząć | zatrzymać maszynę wirtualną, użyj: $ virsh start | shutdown <vmname> (możesz wyświetlić listę według $ virsh list --all). Możesz na przykład użyć tego narzędzia w skrypcie bash lub crontab. Jeszcze raz dziękuję za pomoc.
codolom

Odpowiedzi:

20

Można to wszystko osiągnąć VBoxManage po użyciu połączenia ssh:

1. Wymień swój VMS:

Najpierw wypisz dostępne maszyny wirtualne za pomocą polecenia VBoxManage list vms, zilustruję to na własnej konfiguracji:

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~$ 

Uwaga: jeśli nie masz pewności, która maszyna wirtualna faktycznie działa, możesz VBoxManage list runningvmszamiast tego użyć ...

2. Uruchom maszynę wirtualną:

VBoxManagePolecenia i opcje, które są po, aby uruchomić maszyny wirtualnej są takie:

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

Aby uruchomić maszynę wirtualną „Trusty Tahr Clean Copy” w moim przykładzie, użyłbyś:

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

3. Zatrzymaj maszynę wirtualną:

Aby zatrzymać maszynę wirtualną, użyjesz jej ponownie, VBoxManageale tym razem z controlvmopcją:

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

W moim przykładzie zamknięcie maszyny wirtualnej „Trusty Tahr Clean Copy” to:

VBoxManage controlvm "Trusty Tahr Clean Copy" savestate

To wszystko powinno ładnie działać w stosunku do ssh, który mimo wszystko potrzebuje GUI :)

andrew.46
źródło
Próbowałem tych poleceń przed zapytaniem. Lista VBoxManage vms | runningvms | cokolwiek innego - pusty wynik Niemożliwe. Vms są tworzone na graficznym interfejsie użytkownika i działają. To był moment, kiedy poprosiłem o pomoc.
codolom
@codolom Hmmm .... to musi być połączenie ssh. Czy łączysz się z komputerem hosta z innego komputera za pośrednictwem ssh? Zakładam, że używasz wiersza polecenia ssh ...
andrew.46
@codolom t jest ciekawy, przetestowałem informacje w mojej odpowiedzi przez mój własny system przez ssh i działało idealnie. Czy `vBoxManage list vms` wyświetla błąd?
andrew.46
Nie wiedziałem, że to powinien być problem. Próbowałem to naprawić w ten sposób: stackoverflow.com/questions/5906441/ ... Nienawidzę tego pola tekstowego za pomocą Ctrl + Enter :( - Przepraszam za brakujące linie. Zastosowałem to polecenie na konsoli, ale takie same wyniki.
codolom
Bez błędów. Pusty wynik.
codolom
2

Do płynnego wyłączania użyj:

VBoxManage controlvm "Name" acpipowerbutton
Nacięcie
źródło