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

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

В этой небольшой статье мы рассмотрим как настроить автозапуск виртуальной машины VirtualBox с помощью системы инициализации systemd, которая сейчас используется повсеместно.

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

Давайте создадим файл юнита, который будет управлять автозагрузкой. Для этого выполните такую команду:

sudo systemctl edit [email protected] –full –force

В открывшемся редакторе вставьте такой текст:

Description=Virtual Box Guest %I
After=network.target vboxdrv.service
Before=runlevel2.target shutdown.target
[Service]
User=root
Group=root
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/usr/bin/VBoxManage startvm %i –type headless
ExecStop=/usr/bin/VBoxManage controlvm %i acpipowerbutton
[Install]
WantedBy=multi-user.target

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

С помощью этого юнита мы и будем делать автозапуск virtualbox linux. В этом примере я запускаю виртуальную машину от имени пользователя root, но вам нужно запускать её от того пользователя, к которому добавлены виртуальные машины и от имени которого VirtualBox обычно работает.

Сохраните изменения в файле и выполните следующую команду, чтобы система инициализации перечитала конфигурационные файлы с диска:

В нашем юнит файле мы предусмотрели возможность использования параметра, в котором передается имя или UUID идентификатор виртуальной машины. Если в имени машины есть пробел, то лучше использовать UUID, а иначе можно и имя.

Смотрим список виртуальных машин:

VBoxManage list vms

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

Теперь давайте запустим машину Ubutnu1804 с UUID ed0ce7dd-0ddb-46bf-913c-876671c4d1f1 с помощью systemd:

sudo systemctl start [email protected]

Если во время запуска произошла ошибка, вы можете посмотреть её выполнив:

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

В данном случае машина уже была запущена. Я остановил её и запустил ещё раз с уже помощью systemd. Смотрим статус виртуальной машины:

sudo systemctl status [email protected]

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

Если всё хорошо, то всё, что нам осталось, это добавить этот сервис в автозагрузку:

sudo systemctl enable [email protected]

Выводы

В этой статье мы разобрались как делается автозагрузка виртуальной машины virtualbox. Как видите, всё очень просто и удобно. Теперь ваши виртуальные машины будут всегда запущены.

Нет похожих записей

alt=”Creative Commons License” width=”” />
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Оцените статью:

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

9 комментариев

добрый день сделал все как у вас, но при перезагрузки не запускается что может быть не подскажите?

Почему, после того, как я перенес систему с HDD на SSD виртуальная машина перестала автоматически запускаться?

Скорее всего сменился UUID

класс
работает
СПС

Спасибо за статью, очень пригодилось. Ещё нашёл в интернетах, что в ExecStop можно вместо acpipowerbutton указать savestate
В таком случае вместо выключения виртуальной машины, будет выполнено сохранение текущего состояния.

Доброго времени суток. У меня вот такая ошибка (No files found for [email protected])
Как быть ?

Все уже придумано ораклом, перевод выдержки из официального мануала:
9.21. Запуск виртуальных машин во время загрузки системы

Вы можете запускать виртуальные машины автоматически во время загрузки системы на платформах Linux, Oracle Solaris и Mac OS X для всех пользователей.
9.21.1. Linux: запуск службы автозапуска с помощью init

В Linux служба автозапуска активируется установкой двух переменных в /etc/default/virtualbox. Первый – это VBOXAUTOSTART_DB, который содержит абсолютный путь к каталогу автозапуска базы данных. Каталог должен иметь доступ на запись для каждого пользователя, который должен иметь возможность автоматически запускать виртуальные машины. Кроме того, в каталоге должен быть установлен липкий бит. Вторая переменная – это VBOXAUTOSTART_CONFIG, которая указывает службе на файл конфигурации автозапуска, который используется во время загрузки, чтобы определить, разрешить ли отдельным пользователям запускать виртуальную машину автоматически и настроить задержки запуска. Файл конфигурации может быть помещен в / etc / vbox и содержит несколько опций. Один из них – default_policy, который определяет, разрешает или запрещает служба автозапуска запуск виртуальной машины для пользователей, которых нет в списке исключений. Список исключений начинается с exception_list и содержит список с именами пользователей, разделенных запятыми. Кроме того, для каждого пользователя может быть настроена отдельная задержка запуска, чтобы избежать перегрузки хоста. Ниже приведен пример конфигурации:

# Политика по умолчанию – запретить запуск виртуальной машины, другой вариант – «разрешить».
default_policy = deny

# Бобу разрешено запускать виртуальные машины, но запуск
# будет отложен на 10 секунд
bob = <
allow = true
startup_delay = 10
>

# Алисе не разрешено запускать виртуальные машины, полезно для исключения определенных пользователей
# если политика по умолчанию разрешена.
alice = <
allow = false
>

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

VBoxManage setproperty autostartdbpath каталог_автозапуска

8.8.9. Автозапуск виртуальных машин во время загрузки хост-системы

Эти параметры настраивают функцию автозапуска виртуальной машины, которая автоматически запускает виртуальную машину при загрузке хост-системы. Обратите внимание, что есть предварительные условия, которые необходимо выполнить перед использованием этой функции. См. Раздел 9.21, «Запуск виртуальных машин во время загрузки системы».

–autostart-enabled on | off: включает и отключает автозапуск виртуальной машины при загрузке хост-системы с использованием указанного имени пользователя.

–autostart-delay : указывает задержку в секундах после загрузки хост-системы перед автозапуском виртуальной машины.

при опросе статуса
вьідает такое

вер 07 18:45:46 serv1vvc systemd[1]: Started [email protected]_1.service.
вер 07 18:46:54 serv1vvc systemd[1]: /etc/systemd/system/[email protected]:1: Assig>
вер 07 18:46:54 serv1vvc systemd[1]: /etc/systemd/system/[email protected]:2: Assig>
вер 07 18:46:54 serv1vvc systemd[1]: /etc/systemd/system/[email protected]:3: Assig>
вер 07 18:47:14 serv1vvc systemd[1]: /etc/systemd/system/[email protected]:1: Assig>
вер 07 18:47:14 serv1vvc systemd[1]: /etc/systemd/system/[email protected]:2: Assig>
вер 07 18:47:14 serv1vvc systemd[1]: /etc/systemd/system/[email protected]:3: Assig>
вер 07 19:11:59 serv1vvc systemd[1]: /etc/systemd/system/[email protected]:1: Assig>
вер 07 19:11:59 serv1vvc systemd[1]: /etc/systemd/system/[email protected]:2: Assig>
вер 07 19:11:59 serv1vvc systemd[1]: /etc/systemd/system/[email protected]:3: Assig>
lines 1-17/17 (END)