Come avviare e arrestare i guest VirtualBox dalla riga di comando


11

Ho VirtualBox su Ubuntu 16.04 come host e anche ospiti. Devo gestire gli ospiti (solo start, stop) tramite la riga di comando SSH, ma non ho trovato alcuna soluzione funzionante.



È stato più facile di quanto pensassi. Ci scusiamo per OFF. Ci sono alcuni strumenti da riga di comando per kvm. Uno di questi è "virsh". Per avviare | stop a vm basta usare: $ virsh start | shutdown <vmname> (puoi elencare per $ virsh list --tutti). È possibile utilizzare questo strumento in bash script o crontab per esempio. Grazie ancora per l'aiuto.
codolom,

Risposte:


20

Tutto ciò può essere realizzato usando VBoxManage dopo aver stabilito una connessione ssh:

1. Elenca il tuo VMS:

Per prima cosa elenca le tue macchine virtuali disponibili con il comando VBoxManage list vms, lo illustro sulla mia configurazione:

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 non si è sicuri di quale VM sia effettivamente in esecuzione, è possibile utilizzare VBoxManage list runningvmsinvece ...

2. Avvia una VM:

Il VBoxManagecomando e le opzioni che stai cercando di avviare una macchina virtuale sono questi:

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

Quindi per avviare la VM "Trusty Tahr Clean Copy" nel mio esempio useresti:

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

3. Arrestare una VM:

Per arrestare la VM, dovrai utilizzare nuovamente VBoxManagequesta volta con l' controlvmopzione:

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

E nel mio esempio per chiudere la VM "Trusty Tahr Clean Copy" il comando sarebbe:

VBoxManage controlvm "Trusty Tahr Clean Copy" savestate

Tutto questo dovrebbe funzionare bene su ssh, che ha bisogno di una gui dopo tutto :)


Ho provato questi comandi prima di chiedere. Elenco VBoxManage vms | runningvms | qualsiasi altra cosa - risultato vuoto Impossibile. I vms sono creati su frontend grafico e sono in esecuzione. Questo è stato il momento in cui ho chiesto aiuto.
codolom

@codolom Hmmm .... allora deve essere la connessione ssh. Ti stai collegando al tuo computer host da un altro computer tramite ssh? Presumo che tu stia usando la riga di comando ssh ...
andrew.46

@codolom è curioso, ho testato le informazioni nella mia risposta sul mio sistema tramite ssh e ha funzionato perfettamente. `VBoxManage list vms` dà un errore?
andrew.46

Non sapevo che dovesse essere un problema. Ho provato a risolverlo in questo modo: stackoverflow.com/questions/5906441/… Odio questa casella di testo con Ctrl + Invio :( - Scusate le righe mancanti. Ho applicato questo comando sulla console, ma stessi risultati.
codolom

Nessun errore Uscita vuota.
codolom,

2

Per un arresto regolare, utilizzare:

VBoxManage controlvm "Name" acpipowerbutton
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.