Запуск виртуальной машины virtualbox в фоновом режиме при старте windows

На чтение 7 мин Просмотров 2.4к. Опубликовано

Не давал мне покоя один вопрос — как автоматически запускать в фоновом режиме виртуальную машину из VirtualBox 6.1-7.x в случае непредвиденного отключения света или перезагрузке ОС Windows при каких-либо сбоях?

Если вопрос автоматического запуска ПК после отключении света решился простой настройкой BIOS(а), то вот запуск виртуальной машины в фоновом режиме никак был мне не понятен.

Пользовался я до недавнего времени следующим вариантом автоматического запуска ВМ:

  1. В открытом окне VirtualBox жал на раздел «Машина» — «Создать ярлык на рабочем столе«.
  2. После, нажав на WIN+R, вводил shell:startup и переходил в каталог «C:\Users\Имя пользователя\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup«.
  3. В открытый каталог закидывал вновь созданный ярлык виртуальной машины.

Данный способ рабочий, но жутко раздражает открывающимся окном виртуальной машины. И в случае, если кто-то кроме вас пользуется ПК, то есть вероятность, что надоедливое окно, если не специально, то случайно — обязательно закроют. А машина должна работать 24/7. Отсюда и появился вопрос запуска ВМ в фоновом режиме после старта Windows 10.

В поиске мне попалось несколько вариантов фонового запуска с использованием сторонних разработок и программ. И описывать я их не буду. Ставить что-то еще на ПК мне, конечно же, не захотелось, поэтому поиски продолжились. И вот на каком-то из сайтов я все же нашел корректное описание автоматического запуска ВМ в фоновом режиме, коим и спешу поделиться с вами, да и оставлю заметку, чтобы самому не забыть.

Использовать для автоматического запуска ВМ в фоновом режиме мы будем часть первого описания в шапке, совместно с использованием не ярлыка, помещенного в автозагрузку, а *.bat файла. Данный *.bat файл будет запускать нашу ВМ именно в фоновом режиме сразу же после запуска ОС Windows.

Итак, поэтапно делаем следующие шаги:

  1. Идем в окно VirtualBox, выделяем необходимую виртуальную машину и жмем на раздел «Машина» — «Создать ярлык на рабочем столе«. Ярлык по умолчанию создается на рабочем столе.

  1. Жмем правой кнопкой мыши по вновь созданному ярлыку на рабочем столе и переходим в пункт Свойства

  1. В открывшемся окне свойств переходим на вкладку Ярлык и оттуда из поля Объект копируем значение в скобках { }. В нашем случае это {6e860d8a-346e-4b4a-97ee-a1dc0a8b0a7c}

  1. Теперь нам необходимо открыть блокнот и в него вставить код ниже. Смотрите внимательно описание и скриншоты под пунктом. После вставки кода в блокнот и внесения всех необходимых изменений в соответствии со своей виртуальной машиной — жмем на Файл Сохранить как. Теперь нам осталось только в поле Тип файла: — указать Все файлы, а в поле Имя файла: — внести свое название и в конце добавить .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 — указывает ВМ на запуск в фоновом режиме.

  1. Виртуальная машина через *.bat файл теперь у нас запускается в фоновом режиме — осталось дело за малым — поместить файл в автозагрузку при запуске ОС Windows. Жмем WIN+R, вводим shell:startup и жмем ОК. У нас откроется каталог автозагрузки программ, в который мы и скинем наш *.bat файл. Каталог находится по следующему пути: «C:\Users\Имя пользователя\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup«

  1. Ну и чтобы все это дело проверить — перезагружаем ПК и проверяем запустилась ли наша ВМ в фоновом режиме. Проверить запуск ВМ можно будет в окне с программой VirtualBox, в диспетчере задач или любым другим из удобных способов известных вам. Если все пункты выполнены правильно — всё без проблем сработает.

Содержание

  1. Полный список различных вариантов запуска и управления виртуальной машиной на базе VirtualBox
  2. Команды запуска виртуальной машины:
  3. Команды управления виртуальной машиной:

Полный список различных вариантов запуска и управления виртуальной машиной на базе 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

Надеюсь данная статья поможет сэкономить вам достаточно времени и нервов. Отблагодарить можно по ссылке СПАСИБО!

5
17
Голосов

Рейтинг записи

VirtualBox – отличная платформа виртуализации, но в ней совершенно не заложен механизм автозапуска виртуальных машин. Иногда критически необходимо автоматизировать запуск виртуальной машины. В качестве примера разберем автостарт виртуальной машины при запуске Windows. Это отлично пригодится для того, чтобы автоматически запускать виртуальные машины после аварийной перезагрузки.

Режимы запуска виртуальных машин в VBoxManage

VBoxManage – консольное приложение для управления виртуальными машинами.
По умолчанию, менеджер обычно находится в папке: C:\ProgramFiles\Oracle\VirtualBox\VBoxManage.exe
Для запуска машины необходимо отправить ему команду startvm "Имя машины" --type headless.
Режимы запуска:
gui — запуск виртуальной машины с окном графического интерфейса, режим по умолчанию.
headless — запуск виртуальной машины в фоновом режиме. Графический интерфейс, при необходимости, возможно открыть.
separate — тоже самое, что и headless, но графический интерфейс запускается в отдельном процессе. Это экспериментальная функция, в этом режиме не работает 3D ускорение.

Настройка автозапуска виртуальных машин

Запускаем Планировщик заданий, для Windows 10 проще всего запустить через комбинацию «Win+R», затем taskschd.msc.

Запуск планировщика задач

Создаем задачу для пользователя. Выбираем пункт «Выполнять только для пользователей, вошедших в систему» и — Настроить для Windows 10.

Задача для запуска

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

Триггер

Затем настраиваем действие «Запуск программы». В аргументах к запуску указываем команду с именем виртуальной машины. startvm "Name VM" --type headless.

Запуск программы

На этом настройка задачи завершена.

Настройка автовхода в Windows 10

Скачиваем с сайта Microsoft программу Autologon.

Вводим свой пароль и жмем «Enable». В отличии от включения автовхода через ручную правку реестра, эта утилита сохраняет пароль пользователя в зашифрованном виде.

Настройка автоматической блокировки Windows 10

Чтобы не оставлять компьютер разблокированным, настроим автоматическую блокировку сеанса.
Для этого опять открываем планировщик заданий Windows и добавляем действие в задание по запуску виртуальной машины. rundll32.exe user32.dll,LockWorkStation.

Запуск блокировки сеанса

Это действие должно находится после действия по запуску машины.

Задача в диспетчере задач

Run VirtualBox virtual machine in background mode. If you’ve ever used VMWare WorkStation, you probably already know that when you close the window of a virtual machine, you can choose to allow the virtual machine to run in the background.

How about VirtualBox? Is it possible to do? The answer is absolutely yes. Let’s see how we will do it.

VirtualBox and each virtual machine work on a window

On VMWare, you can start multiple virtual machines on the same window, the virtual machines will be located in many different tabs.

But with VirtualBox, every time you open a virtual machine, it will work on a separate window.

Imagine if you were using 10 virtual machines, you would have 10 separate windows. This is quite annoying to users.

Therefore, we can choose the solution for these virtual machines to run in the background. You will no longer see those 10 windows, instead you just need to look at a manager window.

Start the virtual machine in Headless mode

Headless in VirtualBox, or more precisely, VBoxHeadless. It is designed to be able to create and start virtual machines in a non-graphical environment like servers.

In a personal computer environment, you can take advantage of it to allow running virtual machines without exporting any graphic interface. In other words, we are letting these virtual machines run in the background.

To start a virtual machine in Headless mode, at the manager window, select the virtual machine to start.

And then, click on the arrow next to the Start button and select Headless Start as image below.

Run VirtualBox virtual machine in background mode

Look at the manager window, you can see that the virtual machine goes into Running mode, but no console window of the virtual machine appears.

Now try ssh or remote desktop into the virtual machine, it will still work normally.

You can even turn off the manager window of VirtualBox and the virtual machine will still work.

Conclusion

This is a feature that can be said that quite a few people talk about using VirtualBox. But conversely, it brings a lot of utilities. Especially when you work with multiple virtual machines at the same time.

(This is an article from my old blog that has been inactive for a long time, I don’t want to throw it away so I will keep it and hope it helps someone).

Daniel Pham

Hi my friend, I am a DevOps/DevSecOps engineer. I am living and working in Da Nang, Vietnam.

Необходимо для выполнения пунктов

  • Установленная и настроенная программа VirtualBox
  • Созданная, настроенная и остановленная виртуальная машина VirtualBox

Путь к папке автозагрузки текущего пользователя в Windows 10:

%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Вы можете открыть папку автозагрузки текущего пользователя через проводник Windows, командную строку или щелкнув правой кнопкой мыши Пуск > Выполнить:

shell:startup

Путь к папке автозагрузки всех пользователей в Windows 10:

%allusersprofile%\Microsoft\Windows\Start Menu\Programs\StartUp

Вы можете открыть папку автозагрузки всех пользователей через проводник Windows, командную строку или щелкнув правой кнопкой мыши Пуск > Выполнить:

shell:common startup

Обратите внимание, что если вы используете проводник Windows для доступа к папке Автозагрузка, папка APPDATA «скрыта», вам придется включить скрытые файлы, чтобы ее увидеть. Если вы вводите путь к папке в командной строке CMD или в сценарии, скрытая папка APPDATA не будет проблемой.

Шаг 2. Создать файл в автозагрузке

В автозагрузке создаем файл с наименованием <имя_файла>.bat (напр. Debian-10.5.0-Netinst-Terminal.bat). В нем прописываем команду:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm <имя_виртуальной_машины> --type headless

Например:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "Debian-10.5.0-Netinst (Terminal)" --type headless

Скрипт проверен на VirtualBox версии 6.1.16.

Перезагружаем Windows 10, чтобы проверить результат.

3.9.15.1.3 Автостарт виртуальной машины в VirtualBox при запуске системы

Скачать документ

Окружение

  • Версия РЕД ОС: 8
  • Конфигурация: Рабочая станция
  • Версия ПО: VirtualBox-7.0.20-1

Настройка сервиса автозапуска виртуальной машины

Запустите терминал и выполните команду с привилегиями пользователя root:

echo -e "VBOXAUTOSTART_DB=/etc/vbox\nVBOXAUTOSTART_CONFIG=/etc/vbox/autostartvm.cfg" | sudo tee /etc/default/virtualbox

VBOXAUTOSTART_DB — определяет абсолютный путь к каталогу базы данных автозапуска, обычно это /etc/vbox

VBOXAUTOSTART_CONFIG — определяет путь к конфигурации автозапуска виртуальной машины.

Для настройки конфигурации автостарта создайте файл:

sudo nano /etc/vbox/autostartvm.cfg

Содержимое файла (смените user — на вашего пользователя):

default_policy = deny
user = {
allow = true
startup_delay = 10
}

  • default_policy — определяет, разрешать или запрещать автоматический запуск виртуальной машины по умолчанию. В примере выше мы отказали кому-либо в автоматическом запуске виртуальной машины и явно разрешили одному пользователю user.
  • username (user) — с помощью политики запрета по умолчанию вы можете определить конкретных пользователей, которым разрешено автоматически запускать виртуальную машину (allow = trues). Вы также можете определить, как долго задерживать запуск виртуальной машины. 10 секунд используется в этой демонстрации.

Определение владельца директории базы данных автозапуска

Для определения владельца директории базы данных автозапуска выполните следующие команды:

 sudo usermod -aG vboxusers user 
sudo chgrp vboxusers /etc/vbox

Назначьте группе разрешения на запись в каталоге базы данных автозапуска:

sudo chmod -R 777 /etc/vbox/

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

VBoxManage setproperty autostartdbpath /etc/vbox/

Добавление виртуальной машины в автозапуск

vboxmanage modifyvm redos --autostart-enabled on

где redos — это UUID или имя вашей виртуальной машины. 

Далее нужно создать скрипт для автозапуска машины:

sudo nano /etc/default/start

#!/bin/bash
VBoxAutostart --start -c /etc/vbox/autostartvm.cfg

Сделайте созданный файл исполняемым:

sudo chmod +x /etc/default/start

Проверьте, что файл выполняется успешно:

/etc/default/start

Пример вывода результата команды:

Oracle VM VirtualBox Autostart 6.1.16_REDSOFT
(C) 2021 Oracle Corporation
All rights reserved.

00:00:00.000404 main VirtualBox Autostart 6.1.16_REDSOFT r140961 linux.amd64 (Apr 12 2021 17:37:04) release log
00:00:00.000406 main Log opened 2021-05-24T06:54:30.722810000Z
00:00:00.000407 main Build Type: release
00:00:00.000411 main OS Product: Linux
00:00:00.000411 main OS Release: 5.10.29-1.el7.x86_64
00:00:00.000412 main OS Version: #1 SMP Mon Apr 12 13:55:18 MSK 2021
00:00:00.000445 main DMI Product Name: System Product Name
00:00:00.000452 main DMI Product Version: System Version
00:00:00.000457 main Firmware type: UEFI
00:00:00.001190 main Secure Boot: Disabled
00:00:00.001234 main Host RAM: 7826MB (7.6GB) total, 2378MB (2.3GB) available
00:00:00.001238 main Executable: /usr/lib64/virtualbox/VBoxAutostart
00:00:00.001239 main Process ID: 9566
00:00:00.001239 main Package type: LINUX_64BITS_GENERIC (OSE)
00:00:00.002388 main IPC socket path: /tmp/.vbox-wolandius-ipc/ipcd

Виртуальная машина должна будет запуститься в VirtualBox. Далее создайте сервис, который будет использоваться для автоматического запуска виртуальной машины (смените user — на вашего пользователя):

sudo nano /etc/systemd/system/vmsautostart.service

[Unit]
Description=vms autostart
Before=graphical.target

[Service]
ExecStart=/etc/default/start
Type=oneshot
Group=vboxusers
User=user
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Предоставьте необходимые права следующей командой:

sudo chmod 664 /etc/systemd/system/vmsautostart.service

Добавьте сервис в автозагрузку и запустите его:

sudo systemctl daemon-reload
sudo systemctl enable vmsautostart.service
sudo systemctl start vmsautostart.service

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

vboxmanage modifyvm redos --autostart-enabled off
sudo systemctl disable vmsautostart.service
sudo systemctl stop vmsautostart.service

Эта информация оказалась полезной? ДА НЕТ

Дата последнего изменения: 10.10.2024

Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Canon ip4300 драйвер windows 10
  • Как изменить схему электропитания windows 10 на производительность
  • Что такое windows powershell в чем отличие от командной строки
  • Windows 10 main screen
  • Пропало разрешение 1440х900 windows 10