web-dev-qa-db-fra.com

Comment démarrer et arrêter des invités VirtualBox via une ligne de commande

J'ai VirtualBox sur Ubuntu 16.04 en tant qu'hôte et invités également. Je dois gérer les invités (démarrer, arrêter uniquement) via la ligne de commande SSH, mais je n'ai trouvé aucune solution efficace.

9
codolom

Tout cela peut être accompli en utilisant VBoxManage après que vous avez établi une connexion ssh:

1. Inscrivez votre VMS:

Commencez par répertorier vos machines virtuelles disponibles à l'aide de la commande VBoxManage list vms. Je l'illustre sur ma propre configuration:

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

Remarque: si vous ne savez pas quel VM est en cours d'exécution , vous pouvez utiliser VBoxManage list runningvms à la place ...

2. Démarrer une machine virtuelle:

La commande VBoxManageet les options que vous souhaitez après démarrer une machine virtuelle sont les suivantes:

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

Donc pour démarrer le "Trusty Tahr Clean Copy" VM dans mon exemple, vous utiliseriez:

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

. Arrêtez une VM:

Pour arrêter le VM, vous utiliseriez à nouveau VBoxManagemais cette fois avec l'option controlvmname__:

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

Et dans mon exemple pour fermer le "Trusty Tahr Clean Copy" VM la commande serait:

VBoxManage controlvm "Trusty Tahr Clean Copy" savestate

Tout cela devrait bien fonctionner sur ssh, qui a besoin d’un gui après tout :)

15
andrew.46