Как безопасно завершить работу гостевой ОС в VirtualBox с помощью командной строки

У меня Ubuntu 10.10 и я использую VirtualBox 3.2. В качестве гостевой ОС у меня есть другая Ubuntu в VirtualBox.

Я запускаю Guest Ubuntu автоматически, используя следующую команду после загрузки моего Host Ubuntu:

VBoxHeadless -startvm Ubuntu --vrdp on

Затем я могу получить к нему доступ с помощью ssh или tsclient.

Теперь мне нужно автоматически отключить гостевую Ubuntu, как только я выключу свой Host Ubuntu. Кто-нибудь знает какой-либо безопасный способ автоматического отключения гостевой Ubuntu с помощью командной строки? Я обнаружил два способа выключения гостевой ОС, но я не уверен, что они безопасны или нет. Вот они:

VBoxManage controlvm Ubuntu acpipowerbutton

или

VBoxManage controlvm Ubuntu poweroff
70
задан 13 May 2011 в 15:58

6 ответов

Если вы откроете настройки управления питанием Gnome, вы можете указать, какие действия следует выполнять при нажатии кнопки питания. Если вы установите его на выключение, оно будет корректно выключаться при нажатии виртуальной кнопки питания с помощью команды VBoxManage controlvm Ubuntu acpipowerbutton .

0
ответ дан 13 May 2011 в 15:58

Для безопасного отключения vm используйте эту команду:

vboxmanage controlvm Ubuntu poweroff soft
0
ответ дан 13 May 2011 в 15:58

Если вы выключаете виртуальную машину, когда сервер делает это, вам нужно дождаться виртуальной машины (ей)

(В этом сценарии оболочки «root» является вызывающим, а «theuser» является владельцем 'thevm')

Я знаю, что vms завершился, когда выходные данные команды VBoxManage list runningvms вернули пустую строку.

Я использую это в своем сценарии оболочки

...
stop(){
    su -c "VBoxManage controlvm thevm acpipowerbutton" -s /bin/bash theuser
    while [ "`su -c 'VBoxManage list runningvms' -s /bin/bash theuser`" != "" ]
    do
        echo waiting for VMs to shutdown
        sleep 3
    done
}
...
0
ответ дан 13 May 2011 в 15:58

Не делайте этого:

VBoxManage controlvm Ubuntu poweroff

Это равносильно вытягиванию вилки из розетки на реальном компьютере. Вы не хотите этого делать!

Используйте метод выключения ACPI (проверьте настройку управления питанием, как предлагает Egil) или, возможно, попробуйте метод сохранения состояния (savestate).

0
ответ дан 13 May 2011 в 15:58

Вы должны выключить свою виртуальную Ubuntu точно так же, как выключите свое реальное оборудование. Из командной строки в сеансе ssh удаленно введите:

sudo poweroff

Если вы хотите сохранить состояние машины (аналогично режиму ожидания / спящего режима), используйте вторую точку в ответе @ htorque . 113]

0
ответ дан 13 May 2011 в 15:58

Я обычно выключаю виртуальную машину (Linux) с помощью $ sudo shutdown -h now . Я думаю, это самый изящный способ завершить работу виртуальной машины, потому что она выключается (не выключается) и предоставляет время отсрочки и (возможно) сообщение для пользователей, которые входят в систему.

0
ответ дан 13 May 2011 в 15:58

Другие вопросы по тегам:

Похожие вопросы: