VirtualBox Windows мягкое выключение гостей на выключение хоста

Virtualbox Windows изящное отключение гостей при отключении хоста

Я пытаюсь найти решение для корректного завершения работы любых гостевых виртуальных машин, работающих под Windows VirtualBox, когда главный компьютер выключен или перезапущен.

Кажется, что наиболее безопасным вариантом будет запуск команды «сохранить состояние», когда хост начинает отключаться, но неясно, будет ли хост ждать достаточно долго, чтобы виртуальные машины завершили сохранение состояния и отключили питание.

У кого-нибудь есть надежное решение этой (на первый взгляд основной) проблемы?

6 ответов

У меня была похожая проблема и я решил ее, запустив VirtualBox как сервис:

с VBoxVMService вы можете выбрать, как вы хотите, чтобы машина для выключения (сохранить состояние, выключение питания) и запуска. Так как он работает как служба, Windows будет автоматически ждать его завершения работы, в процессе завершения работы системы.

к сожалению, это не представляется возможным для виртуальных машин, запущенных через VirtualBox GUI. Хотя интерфейс может перехватить событие завершения работы узла и реагировать, служба в VirtualBox увольняют: https://forums.virtualbox.org/viewtopic.php?p=278668#p278668

Если вам не нужна графическая консоль, можно воспользоваться VBoxHeadlessTray или VBoxVMService. Оба поддерживают автоматическое сохранение и возобновление при завершении работы и перезапуске узла Windows.

VirtualBox 5.0 вводит «съемный интерфейс» режим запуска. Этот режим запускает виртуальную машину без головы с отдельным процессом пользовательского интерфейса. Графическая производительность страдает, хотя и 3D ускорение не поддерживается. Но, возможно, это может быть объединено с VBoxHeadlessTray в будущем (VBoxHeadlessTray еще не поддерживает 5.0.) Ссылки на VBoxHeadlessTray репозиторий GitHub и тегом GitHub запрос на добавление VirtualBox 5 поддержка.

Edit: VBoxVmService также не поддерживает новый съемный режим с версии 5.0. Только безголовый до сих пор. Я добавил запрос для этого.

Извините, я опоздал на вечеринку. Существует точный ответ на это, хотя он требует некоторой командной строки-foo. Смотри эту ветку пост для получения дополнительной информации: https://forums.virtualbox.org/viewtopic.php?f=6&t=53684#p285540

команда, которую вы ищете:

«C:Program ФайлыОракулВ VirtualBox VBoxManage.exe «setextradata» имя виртуальной машины » GUI / DefaultCloseAction Shutdown

Это то, что я использую на нескольких виртуальных машинах, закройте окно, и оно начнется безопасное выключение автоматически. Завершение работы Windows, и в его попытке закрыть все, он будет ждать завершения этих процессов.

у меня есть 3 пакетных скрипта, которые я использую вместо кнопок питания startmenu.

do_shutdown.летучая мышь (выключение ПК с 10 периода ожидания сек, чтобы не дать 10 ВМ сек время сэйва, но позвольте мне отменить выключение в течение 10 секунд. Отсчет времени начинается после выключения виртуальной машины)

do_reboot.летучая мышь (перезагружается сразу после закрытия виртуальной машины вниз)

do_cancel.летучая мышь (позволяет мне отменить выключение ПК в течение 10-секундного периода ожидания. Это перезагрузит виртуальную машину снова, так как они закрыли с do_shutdown.летучая мышь)

вместо savestate вы также можете использовать один из следующих

у меня был подобный вопрос и нашел эту страницу. Я не хочу запускать VirtualBox как службу, потому что у меня много виртуальных машин для тестирования и обычно выбираю разные для запуска в пользовательском интерфейсе VirtualBox. Когда я выключаю компьютер, раздражает вручную сохранять состояние каждой виртуальной машины. Использование скриптов для сохранения всех запущенных виртуальных машин в данном случае представляется практичным решением. Чтобы сделать ответ Daniel F более общим, я написал эти сценарии, которые автоматически сохраняют состояние всех работающих виртуальных машин без называя их явно.

saveRunningVMs.летучая мышь для Windows:

saveRunningVMs.sh для Linux:

Я создал скрипт python, который приостанавливает работу всех виртуальных машин VirtualBox, а затем настраивает систему на запуск сценария при выходе из системы в качестве запланированной задачи.

Я не знаю, насколько надежен этот метод точно. как отметили другие существуют ограничения на то, как долго система будет ждать завершения задачи Winlogon 7002. Но я лично не было никаких проблем с этим давая полезная спасти Штаты даже с несколькими запущенными виртуальными машинами по 4+ ГБ общей ВМ ОПЕРАТИВНАЯ ПАМЯТЬ.

вот шаги, чтобы установить его:

  • имя вашего выбор
  • запуск задачи при регистрации определенного события
  • Log: System
  • Источник: Winlogon
  • идентификатор события: 7002
  • запустить программу
  • рядом с Программы/Скрипта введите полный путь к вашей python.exe , например c:Python27python.exe
  • рядом с добавить аргументы, введите полный путь, где вы положили файл сценария python, например, я положил шахту в подпапке Моих документов папка, значит это C:UsersraksliceDocumentsvboxsuspendvboxsuspend.py
  • Выбрать Закончить.

теперь в VirtualBox виртуальных машин должна быть приостановлена на выход/перезагрузки/выключения.

Как исправить ошибку «E_FAIL 0x80004005»

Также еще одна частая проблема у пользователей в VirtualBox — это возникновение ошибки под названием «E_FAIL 0 x 80004005». Исправить ее можно несколькими способами.

Если использовали флешку в виртуальной машине, то после извлечения съемного носителя и при запуске менеджера программы не от имени администратора будет выскакивать код ошибки. Для решения проблемы подключите обратно диск или удалите его из настроек виртуальной машины. Для этого зайдите в меню и выберите «Носители», запустите программу от имения администратора.

Как исправить ошибку «E_FAIL 0x80004005»

Ошибка может возникать из-за видоизменения пути к местоположению файлов виртуальной машины, переименования папок или из-за изменения названия диска. При запуске утилиты будет появляться надпись «Недоступно» («Inaccessible») в названии виртуальной машины. Если ее выделить, то выскочит информация об ошибке, которая указана на фото ниже. Для решения проблемы возвратите обратно первоначальное местоположение виртуальной машины. Путь найдете вверху экрана рядом с сообщением «Fail Not Found». Также можете просто удалить эту машину, а затем произвести ее импорт из нового месторасположения.

оказывается, VirtualBox изначально поставляется со специальной командой, посвященной этой потребности:

например, для удаления сетевого интерфейса vboxnet0, выполните следующую команду

использование GUI,

открыть Virtualbox, нажмите File — > Preferences — > Network — > Host-only Network, удалите Vboxnet#

6 ответов

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

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

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

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

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

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

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

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

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

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

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

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

VirtualBox Interface — как исправить проблему при выключении

В принципе, если подождать немного времени, то надпись VirtualBox Interface — может пропасть и компьютер выключится. Но это не совсем корректно. Компьютер просто дает некоторое время для завершения, если в итоге приложение не выключилось — система завершает его принудительно, что разумеется не очень хорошо.

Есть один способ, может помочь. Запустите реестр, зажав кнопки Win + R > введя команду regedit > нажмите ОК. Далее перейдите по такому пути:

HKEY_CURRENT_USER > Control Panel > Desktop

Далее нажмите правой кнопкой по белому пространству справа, появится меню, выберите Создать > Строковый параметр > введите название AutoEndTasks и нажмите энтер или просто мышкой по белому полю рядом, чтобы сохранить название. Создали параметр? Окей. Теперь нажмите по нему правой кнопкой > выберите изменить > укажите 1. Все, сохраняем изменения и выполняем перезагрузку. Что мы сделали? Мы активировали отправку сигнала компоненту VirtualBox Interface при выключении компьютера. Это может помочь.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector