Не давал мне покоя один вопрос — как автоматически запускать в фоновом режиме виртуальную машину из VirtualBox 6.1-7.x в случае непредвиденного отключения света или перезагрузке ОС Windows при каких-либо сбоях?
Если вопрос автоматического запуска ПК после отключении света решился простой настройкой BIOS(а), то вот запуск виртуальной машины в фоновом режиме никак был мне не понятен.
Пользовался я до недавнего времени следующим вариантом автоматического запуска ВМ:
- В открытом окне VirtualBox жал на раздел «Машина» — «Создать ярлык на рабочем столе«.
- После, нажав на WIN+R, вводил shell:startup и переходил в каталог «C:\Users\Имя пользователя\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup«.
- В открытый каталог закидывал вновь созданный ярлык виртуальной машины.
Данный способ рабочий, но жутко раздражает открывающимся окном виртуальной машины. И в случае, если кто-то кроме вас пользуется ПК, то есть вероятность, что надоедливое окно, если не специально, то случайно — обязательно закроют. А машина должна работать 24/7. Отсюда и появился вопрос запуска ВМ в фоновом режиме после старта Windows 10.
В поиске мне попалось несколько вариантов фонового запуска с использованием сторонних разработок и программ. И описывать я их не буду. Ставить что-то еще на ПК мне, конечно же, не захотелось, поэтому поиски продолжились. И вот на каком-то из сайтов я все же нашел корректное описание автоматического запуска ВМ в фоновом режиме, коим и спешу поделиться с вами, да и оставлю заметку, чтобы самому не забыть.
Использовать для автоматического запуска ВМ в фоновом режиме мы будем часть первого описания в шапке, совместно с использованием не ярлыка, помещенного в автозагрузку, а *.bat файла. Данный *.bat файл будет запускать нашу ВМ именно в фоновом режиме сразу же после запуска ОС Windows.
Итак, поэтапно делаем следующие шаги:
- Идем в окно VirtualBox, выделяем необходимую виртуальную машину и жмем на раздел «Машина» — «Создать ярлык на рабочем столе«. Ярлык по умолчанию создается на рабочем столе.
- Жмем правой кнопкой мыши по вновь созданному ярлыку на рабочем столе и переходим в пункт Свойства
- В открывшемся окне свойств переходим на вкладку Ярлык и оттуда из поля Объект копируем значение в скобках { }. В нашем случае это {6e860d8a-346e-4b4a-97ee-a1dc0a8b0a7c}
- Теперь нам необходимо открыть блокнот и в него вставить код ниже. Смотрите внимательно описание и скриншоты под пунктом. После вставки кода в блокнот и внесения всех необходимых изменений в соответствии со своей виртуальной машиной — жмем на Файл — Сохранить как. Теперь нам осталось только в поле Тип файла: — указать Все файлы, а в поле Имя файла: — внести свое название и в конце добавить .bat, чтобы наш сохраненный файл стал исполняемым. Данный файл будет запускать нашу ВМ в фоновом режиме.
@echo off
cd C:\Program Files\Oracle\VirtualBox
VBoxManage.exe startvm {6e860d8a-346e-4b4a-97ee-a1dc0a8b0a7c} --type headless
- @echo on / off — включить / выключить режим отображения вводимых команд на экране.
- cd C:\Program Files\Oracle\VirtualBox — переходит в каталог с установленной программой VirtualBox
- VBoxManage.exe startvm {6e860d8a-346e-4b4a-97ee-a1dc0a8b0a7c} —type headless — здесь у нас VBoxManage.exe из папки с программой VirtualBox запускает нашу ВМ с ранее скопированным идентификатором {6e860d8a-346e-4b4a-97ee-a1dc0a8b0a7c} (вы указываете соответственно свой) и параметр —type headless — указывает ВМ на запуск в фоновом режиме.
- Виртуальная машина через *.bat файл теперь у нас запускается в фоновом режиме — осталось дело за малым — поместить файл в автозагрузку при запуске ОС Windows. Жмем WIN+R, вводим shell:startup и жмем ОК. У нас откроется каталог автозагрузки программ, в который мы и скинем наш *.bat файл. Каталог находится по следующему пути: «C:\Users\Имя пользователя\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup«
- Ну и чтобы все это дело проверить — перезагружаем ПК и проверяем запустилась ли наша ВМ в фоновом режиме. Проверить запуск ВМ можно будет в окне с программой VirtualBox, в диспетчере задач или любым другим из удобных способов известных вам. Если все пункты выполнены правильно — всё без проблем сработает.
Полный список различных вариантов запуска и управления виртуальной машиной на базе VirtualBox
Команды запуска виртуальной машины:
Запуск виртуальной машины с окном графического интерфейса. Это значение по умолчанию.
VBoxManage.exe startvm {57d9539c-a235-4fef-9232-530e7e7958cc} --type gui
Запуск виртуальной машины без окна только для удаленного отображения. Соответствует фоновому режиму.
VBoxManage.exe startvm {57d9539c-a235-4fef-9232-530e7e7958cc} --type headless
Запуск виртуальной машины с отсоединенным пользовательским интерфейсом. Технически это безголовая виртуальная машина с пользовательским интерфейсом в отдельном процессе. Это экспериментальная функция, поскольку в ней отсутствуют определенные функции, например ускорение 3D.
VBoxManage.exe startvm {57d9539c-a235-4fef-9232-530e7e7958cc} --type separate
Команды управления виртуальной машиной:
Временный перевод виртуальной машины в режим ожидания без постоянного изменения ее состояния. Окно виртуальной машины окрашено в серый цвет, что указывает на то, что в настоящее время виртуальная машина приостановлена. Это эквивалентно выбору пункта «Пауза» в меню «Машина» графического интерфейса.
VBoxManage.exe controlvm {57d9539c-a235-4fef-9232-530e7e7958cc} pause
Отмена предыдущей команды «Пауза». Это эквивалентно выбору пункта «Возобновить» в меню «Машина» графического интерфейса.
VBoxManage.exe controlvm {57d9539c-a235-4fef-9232-530e7e7958cc} resume
Перезагрузка виртуальной машины — команда равносильна нажатию кнопки Reset на реальном компьютере. Делается холодная перезагрузка виртуальной машины, которая сразу перезагружает ВМ и перезагружает гостевую операционную систему. Состояние ВМ заранее не сохраняется, и данные могут быть потеряны. Это эквивалентно выбору пункта «Сброс» в меню «Машина» графического интерфейса.
VBoxManage.exe controlvm {57d9539c-a235-4fef-9232-530e7e7958cc} reset
Отключение виртуальной машины сравнимое с отключением кабеля питания на реальном компьютере. Состояние ВМ заранее не сохраняется, и данные могут быть потеряны. Это эквивалентно выбору пункта «Закрыть» в меню «Машина» графического интерфейса или щелчку по кнопке закрытия окна виртуальной машины, а затем выбору «Выключить машину» в отображаемом диалоговом окне. После этого состояние виртуальной машины будет выключено. Из этого состояния его можно запустить снова командами запуска виртуальной машины, описанными выше.
VBoxManage.exe controlvm {57d9539c-a235-4fef-9232-530e7e7958cc} poweroff
Сохранение текущего состояния виртуальной машины на диск, а затем остановка виртуальной машины. Это эквивалентно выбору пункта «Закрыть» в меню «Машина» графического интерфейса или щелчку по кнопке закрытия окна виртуальной машины, а затем выбору «Сохранить состояние машины» в отображаемом диалоговом окне. После этого состояние ВМ будет сохранено. Из этого состояния его можно запустить снова командами запуска виртуальной машины, описанными выше.
VBoxManage.exe controlvm {57d9539c-a235-4fef-9232-530e7e7958cc} savestate
Отправка в виртуальной машине сигнал отключения ACPI, как если бы была нажата кнопка питания на реальном компьютере. Пока на виртуальной машине работает довольно современная гостевая операционная система, обеспечивающая поддержку ACPI, это должно вызвать надлежащий механизм завершения работы внутри виртуальной машины.
VBoxManage.exe controlvm {57d9539c-a235-4fef-9232-530e7e7958cc} acpipowerbutton
Надеюсь данная статья поможет сэкономить вам достаточно времени и нервов. Отблагодарить можно по ссылке СПАСИБО!
Если ярлык или БАТ.ник положить в C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp то будет запускаться ДО авторизации пользователя
Спасибо за дополнительную информацию :-)
Здравствуйте.
Информация про запуск виртуальной машины в фоновом режиме с помощью .bat очень помогла – спасибо!
Скажите не могли бы вы описать также команды для виртуальной машины (для .bat):
«Приостановить»
«Перезапустить»
«Сохранить состояние»
«Завершить работу»
«Выключить»
Статья дополнена, ознакомьтесь.
Большое спасибо за статью! Все очень понятно и подробно описано.
Мне помогло в практическом применении: на VirtualBox установлен Home Assistant, для автостарта после сбоя электропитания — как раз то что нужно
Рад был помочь)
Версия 7.0.14 r161095 (Qt5.15.2)
Все проще. Создаете ярлык по фото из пункта 1 и кидаете его в автозагрузку. Другие решения не работают, возможно они актуальны только для 6 версии.
Установлена версия 7.0.14 (Winsows 11 23H2 сборка 22631.3155) — все прекрасно по данной инструкции работает. Возможно что-то не так делаете или у пользователя не хватает прав. Просто ярлык будет стартовать окно с виртуалкой, что если честно — не очень удобно.