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

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

Запустите терминал и выполните команду:

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

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

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

Настройка конфигурации автостарта, создайте файл

nano /etc/vbox/autostartvm.cfg

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

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

• default_policy — определяет, разрешать или запрещать автоматический запуск виртуальной машины по умолчанию. В примере выше мы отказали кому-либо в автоматическом запуске виртуальной машины и явно разрешили одному пользователю user.

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

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

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

usermod -aG vboxusers user
chgrp vboxusers /etc/vbox

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

chmod -R 777 /etc/vbox/

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

VBoxManage setproperty autostartdbpath /etc/vbox/

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

vboxmanage modifyvm redos --autostart-enabled on

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

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

nano /etc/default/start

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

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

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 — на вашего пользователя):

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

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

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

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

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

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

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

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

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

Print Friendly, PDF & Email