У меня 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
Если вы откроете настройки управления питанием Gnome, вы можете указать, какие действия следует выполнять при нажатии кнопки питания. Если вы установите его на выключение, оно будет корректно выключаться при нажатии виртуальной кнопки питания с помощью команды VBoxManage controlvm Ubuntu acpipowerbutton
.
Для безопасного отключения vm используйте эту команду:
vboxmanage controlvm Ubuntu poweroff soft
Если вы выключаете виртуальную машину, когда сервер делает это, вам нужно дождаться виртуальной машины (ей)
(В этом сценарии оболочки «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
}
...
Не делайте этого:
VBoxManage controlvm Ubuntu poweroff
Это равносильно вытягиванию вилки из розетки на реальном компьютере. Вы не хотите этого делать!
Используйте метод выключения ACPI (проверьте настройку управления питанием, как предлагает Egil) или, возможно, попробуйте метод сохранения состояния (savestate
).
Вы должны выключить свою виртуальную Ubuntu точно так же, как выключите свое реальное оборудование. Из командной строки в сеансе ssh удаленно введите:
sudo poweroff
Если вы хотите сохранить состояние машины (аналогично режиму ожидания / спящего режима), используйте вторую точку в ответе @ htorque . 113]
Я обычно выключаю виртуальную машину (Linux) с помощью
$ sudo shutdown -h now
. Я думаю, это самый изящный способ завершить работу виртуальной машины, потому что она выключается (не выключается) и предоставляет время отсрочки и (возможно) сообщение для пользователей, которые входят в систему.