Как запустить и остановить гостей VirtualBox через командную строку

11

У меня есть VirtualBox на Ubuntu 16.04 в качестве хоста и гостей. Я должен управлять гостями (запускать, останавливать только) через командную строку SSH, но не нашел никакого рабочего решения.

codolom
источник
Это было проще, чем я думал. Извините за ВЫКЛ. Есть несколько инструментов командной строки для KVM. Один из них "Вирш". Чтобы запустить | остановить виртуальную машину, просто используйте: $ virsh start | shutdown <vmname> (вы можете получить список по $ virsh list --all). Вы можете использовать этот инструмент, например, в bash-скрипте или crontab. Еще раз спасибо за помощь.
Кодолом

Ответы:

20

Все это может быть достигнуто с помощью VBoxManage после того, как вы установили ssh-соединение:

1. Перечислите свою VMS:

Сначала перечислите доступные виртуальные машины с помощью команды VBoxManage list vms, я проиллюстрирую это на моей собственной установке:

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

Примечание: если вы не уверены, какая виртуальная машина на самом деле работает, вы можете использовать VBoxManage list runningvmsвместо этого ...

2. Запустите ВМ:

Команда VBoxManageи параметры, после которых вы запускаете виртуальную машину:

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

Поэтому для запуска виртуальной машины «Trusty Tahr Clean Copy» в моем примере вы должны использовать:

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

3. Остановите ВМ:

Чтобы остановить виртуальную машину, вы бы снова использовали, VBoxManageно на этот раз с controlvmопцией:

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

И в моем примере, чтобы закрыть виртуальную машину «Trusty Tahr Clean Copy», команда будет выглядеть так:

VBoxManage controlvm "Trusty Tahr Clean Copy" savestate

Все это должно хорошо работать над ssh, которому нужен графический интерфейс :)

andrew.46
источник
Я пробовал эти команды, прежде чем спрашивать. Список VBoxManage vms | runningvms | все остальное - пустой результат Невозможно. VMS создаются на графическом интерфейсе, и они работают. Это был момент, когда я попросил помочь.
Кодолом
@codolom Хммм .... тогда должно быть соединение ssh. Вы подключаетесь к хост-компьютеру с другого компьютера через ssh? Я предполагаю, что вы используете
командную строку
@ codolom t любопытно, я проверил информацию в своем ответе на моей собственной системе через ssh, и она отлично работала. Выдает ли VBoxManage list vms ошибку?
Андрей.46
Я не знал, что это должно быть проблемой. Я пытался исправить это следующим образом: stackoverflow.com/questions/5906441/… Я ненавижу это текстовое поле с помощью Ctrl + Enter :( - Извините за пропущенные строки. Я применил эту команду на консоли, но результаты те же.
codolom
Нет ошибок Пустой вывод.
Кодолом
2

Для корректного отключения используйте:

VBoxManage controlvm "Name" acpipowerbutton
Ник
источник