So starten und stoppen Sie VirtualBox-Gäste über die Befehlszeile

11

Ich habe VirtualBox unter Ubuntu 16.04 auch als Host und Gäste. Ich muss Gäste (nur starten, stoppen) über die SSH-Befehlszeile verwalten, habe aber keine funktionierende Lösung gefunden.

Codolom
quelle
Es war einfacher als ich dachte. Entschuldigung für AUS. Es gibt einige Befehlszeilenprogramme für kvm. Einer von ihnen ist "virsh". Um eine VM zu starten oder zu stoppen, verwenden Sie einfach: $ virsh start | shutdown <vmname> (Sie können nach $ virsh list --all auflisten). Sie können dieses Tool beispielsweise in Bash-Skripten oder Crontab verwenden. Nochmals vielen Dank für Ihre Hilfe.
Codolom

Antworten:

19

Dies kann erreicht werden, indem Sie Folgendes verwenden, VBoxManage nachdem Sie eine SSH-Verbindung hergestellt haben:

1. Listen Sie Ihr VMS auf:

Listen Sie zuerst Ihre verfügbaren virtuellen Maschinen mit dem Befehl auf VBoxManage list vms. Ich illustriere dies in meinem eigenen Setup:

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

Hinweis: Wenn Sie nicht sicher sind, welche VM tatsächlich ausgeführt wird, können Sie VBoxManage list runningvmsstattdessen ...

2. Starten Sie eine VM:

Der VBoxManageBefehl und die Optionen, nach denen Sie eine virtuelle Maschine starten müssen, sind folgende:

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

Um die VM "Trusty Tahr Clean Copy" in meinem Beispiel zu starten , würden Sie Folgendes verwenden:

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

3. Stoppen Sie eine VM:

Um die VM zu stoppen , würden Sie sie erneut verwenden VBoxManage, diesmal jedoch mit der controlvmOption:

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

In meinem Beispiel zum Schließen der VM "Trusty Tahr Clean Copy" lautet der Befehl:

VBoxManage controlvm "Trusty Tahr Clean Copy" savestate

Das sollte alles gut über ssh funktionieren, der doch eine GUI braucht :)

andrew.46
quelle
Ich habe diese Befehle ausprobiert, bevor ich gefragt habe. VBoxManage-Liste vms | runningvms | alles andere - leeres Ergebnis Unmöglich. Die VMs werden im grafischen Frontend erstellt und laufen. Dies war der Moment, in dem ich um Hilfe bat.
Codolom
@codolom Hmmm .... muss dann die ssh-Verbindung sein. Stellen Sie über ssh eine Verbindung zu Ihrem Host-Computer von einem anderen Computer her her? Ich
nehme an
@codolom t ist neugierig, ich habe die Informationen in meiner Antwort auf mein eigenes System über ssh getestet und es hat perfekt funktioniert. Gibt `VBoxManage list vms` einen Fehler aus?
Andrew.46
Ich wusste nicht, dass das ein Problem sein sollte. Ich habe versucht, das Problem auf diese Weise zu beheben: stackoverflow.com/questions/5906441/… Ich hasse dieses Textfeld mit Strg + Eingabetaste :( - Entschuldigung für fehlende Zeilen. Ich habe diesen Befehl auf die Konsole angewendet, aber die gleichen Ergebnisse.
Codolom
Keine Fehler. Ausgabe leeren.
Codolom
2

Für ein ordnungsgemäßes Herunterfahren verwenden Sie:

VBoxManage controlvm "Name" acpipowerbutton
Nick
quelle