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

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


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


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


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


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



sudo systemctl edit vbox@.service --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 linux. В этом примере я запускаю виртуальную машину от имени пользователя root, но вам нужно запускать её от того пользователя, к которому добавлены виртуальные машины и от имени которого VirtualBox обычно работает.


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



systemctl daemon-reload

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


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



VBoxManage list vms



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



sudo systemctl start vbox@ed0ce7dd-0ddb-46bf-913c-876671c4d1f1

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



journalctl -xe



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



sudo systemctl status vbox@ed0ce7dd-0ddb-46bf-913c-876671c4d1f1



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



sudo systemctl enable vbox@ed0ce7dd-0ddb-46bf-913c-876671c4d1f1

Добавить комментарий

Автору будет очень приятно получить обратную связь.

Комментариев 0