Вся работа будет производиться в командной строке (CLI).
Для автоматизации запуска виртуальной машины, будут использоваться возможности системы инициализации systemd.
Мы создадим конфигурационный файл юнита systemd, который сможем использовать для инициализации различных виртуальных машин без необходимости написания нескольких сценариев.
Сначала проверим, что наш пользователь входит в группу vboxusers. В терминале выполняем команду:
groups
Результат работы команды может быть такого вида
$ groups
gt2 adm dialout cdrom floppy sudo audio dip video plugdev netdev wireshark bluetooth scanner kaboxer vboxusers
Если пользователь не входит в группу, то добавим его:
sudo usermod -a -G vboxusers $USER
где $USER это глобальная переменная в которой записан пользователь под которым мы авторизованы в linux (в нашем случае это мы сами).
Создаём конфигурационный файл юнита systemd:
sudo nano /etc/systemd/system/autostart_vm@.service
вставляем следующее содержимое:
[Unit]
Description= Guest VM %I
After=network.target vboxdrv.service
Before=runlevel2.target shutdown.target
[Service]
User=username
Group=vboxusers
Type=forking
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
ВНИМАНИЕ! В секции
Service,usernameменяем на логин нашего пользователя!
сохраняем конфигурационный файл.
Чтобы дальше продолжать, нам сначала надо увидеть какие виртуальные машины зарегистрированы в системе. Выполняем команду:
VBoxManage list vms
пример вывода команды:
$ VBoxManage list vms
"WinSrv2019" {b03095c4-9ed1-4648-8a4a-cc7de4f0a139}
Включаем запуск виртуальной машины WinSrv2019 при загрузке linux (создам символьную ссылку).
sudo systemctl enable autostart_vm@WinSrv2019
Пример результата работы команды:
$ sudo systemctl enable autostart_vm@WinSrv2019
Created symlink /etc/systemd/system/multi-user.target.wants/autostart_vm@WinSrv2019.service → /etc/systemd/system/autostart_vm@.service.
Чтобы убедиться, что наш файл конфигурации работает правильно, выполняем следующие команды:
обновляем конфигурацию юнитов для всех служб:
sudo systemctl daemon-reload
запускаем на исполнение файл конфигурации юнита, который мы создали ранее:
sudo systemctl start autostart_vm@WinSrv2019
проверяем состояние запущенного нами процесса:
sudo systemctl status autostart_vm@WinSrv2019
пример вывода команды status:
$ sudo systemctl status autostart_vm@WinSrv2019
● autostart_vm@WinSrv2019.service - Guest VM WinSrv2019
Loaded: loaded (/etc/systemd/system/autostart_vm@.service; enabled; preset>
Active: active (exited) since Wed 2025-04-24 11:39:23 EAT; 3min 10s ago
Process: 3927 ExecStart=/usr/bin/VBoxManage startvm WinSrv2019 --type headles>
CPU: 149ms
Active: active говорит о том, что виртуальная машина запущена и работает.
Всё!
Вы должны авторизоваться, чтобы оставлять комментарии.
Комментарии ()