Как настроить автозапуск виртуальной машины
Oracle® VM VirtualBox
Administrator's Guide for Release 6.0
2.22. Starting Virtual Machines During System Boot
You can start VMs automatically during system boot on Linux, Oracle Solaris, and Mac OS X platforms for all users.
2.22.1. Linux: Starting the Autostart Service With init
On Linux, the autostart service is activated by setting two variables in /etc/default/virtualbox . The first one is VBOXAUTOSTART_DB which contains an absolute path to the autostart database directory. The directory should have write access for every user who should be able to start virtual machines automatically. Furthermore the directory should have the sticky bit set. The second variable is VBOXAUTOSTART_CONFIG which points the service to the autostart configuration file which is used during boot to determine whether to allow individual users to start a VM automatically and configure startup delays. The configuration file can be placed in /etc/vbox and contains several options. One is default_policy which controls whether the autostart service allows or denies to start a VM for users which are not in the exception list. The exception list starts with exception_list and contains a comma separated list with usernames. Furthermore a separate startup delay can be configured for every user to avoid overloading the host. A sample configuration is given below:
Any user who wants to enable autostart for individual machines must set the path to the autostart database directory with the following command:
2.22.2. Oracle Solaris: Starting the Autostart Service With SMF
On Oracle Solaris hosts, the Oracle VM VirtualBox autostart daemon is integrated into the SMF framework. To enable it you must point the service to an existing configuration file which has the same format as on Linux, see Section 2.22.1, “Linux: Starting the Autostart Service With init”. For example:
When everything is configured correctly you can start the Oracle VM VirtualBox autostart service with the following command:
For more information about SMF, see the Oracle Solaris documentation.
2.22.3. Mac OS X: Starting the Autostart Service With launchd
On Mac OS X, launchd is used to start the Oracle VM VirtualBox autostart service. An example configuration file can be found in /Applications/VirtualBox.app/Contents/MacOS/org.virtualbox.vboxautostart.plist . To enable the service copy the file to /Library/LaunchDaemons and change the Disabled key from true to false . Furthermore replace the second parameter to an existing configuration file which has the same format as on Linux, see Section 2.22.1, “Linux: Starting the Autostart Service With init”.
To manually start the service use the following command:
For additional information on how launchd services can be configured see:
2.22.4. Windows: Starting the Autostart Service With a Windows service
On Windows, autostarting is implemented as a Windows service. The service is installed for every user with their own credentials. Before installing any autostart services on a system you first have to define the VBOXAUTOSTART_CONFIG environment variable in the system variables with the path to the autostart configuration file. The configuration file has the same format as on Linux, see Section 2.22.1, “Linux: Starting the Autostart Service With init”, except the user name can be specified using the following formats: "user", "domain\user", ".\user" and "user@domain".
To enable autostarting for a particular user, a member of the administrators group must run the following command:
The password file should contain the password followed by a line break. The rest of the file is ignored. The user will be asked for a password if the password file is not specified.
To disable autostarting for particular user, a member of the administrators group must run the following command:
If a user has changed their password then a member of the administrators group must either reinstall the service or change the service credentials using Windows Service Manager. Due to Windows security policies, the autostart service cannot be installed for users with empty passwords.
Copyright © 2004, 2020 Oracle and/or its affiliates. All rights reserved. Legal Notices
VirtualBox – бесплатная и самая популярная программа для запуска нескольких виртуальных операционных систем во время работы одной настоящей. В некоторых ситуациях, при наличии у специализированного ПО защиты от пиратства, привязанной к аппаратной части компьютера, например, требуется запускать виртуальную машину регулярно. Но делать это вручную не удобно. О том, как настроить в VirtualBox автозапуск виртуальной машины и расскажет эта статья.
Настройка автозапуска виртуальной машины Virtualbox
Сделать это можно 3 способами:
Команда для автозапуска
Команды, настраивающей в одно действие запуск нужной виртуальной машины при старте компьютера, не существует – VirtualBox не поддерживает эту функцию. Но существует команда, запускающая виртуальную машину через командную строку.
Ее нужно добавить в автозапуск Windows, на чем и основаны все способы автозапуска виртуальной машины в VirtualBox.
Создание ярлыка
Порядок действий следующий:
Второй способ сложнее, но подходит для любой версии VirtualBox. Порядок действий следующий:
Найти файл VboxManage.exe с помощью Проводника. Записать полный путь к нему в Блокнот.
Создание задачи в Планировщике
Порядок действий для создания задания в Windows 7,8 и 10 одинаков и состоит в следующем:
VirtualBoxVmService
Для этого способа потребуется сторонняя утилита – VirtualBoxVmService. Любую из версий этой программы, включая самые новые, можно скачать на нашем сайте.
Порядок действий следующий:
Важные нюансы
Для того, чтобы осуществить автозапуск VirtualBox после первой перезагрузки нужно учесть 3 особенности:
Добавление виртуальной машины в автозапуск ОС Windows – несложная для продвинутого пользователя задача, требующая от него умения работать с командной строкой.
По умолчанию все виртуальные машины, запущенные на сервере VMWare ESXi или VMware Hypervisor не запускаются автоматически после перезагрузки сервера. Это означает, что после перезагрузки хоста ESXi (плановой или неплановой, по питанию), администратору придется вручную запускать все виртуальные машины. Разберемся, как настроить автоматический запуск ВМ на сервере VMWare ESXi, чтобы ВМ загружались автоматом без участия администратора.
Итак, запустите браузер, откройте стартовую страницу VMware Web Client и авторизуйтесь. Затем в консоли Web Client выберите хост, на котором вы хотите настроить автозапуск ВМ. Затем перейдите в раздел Manage -> Settings -> VM Startup / Shutdown .
Совет . В том случае, если хост ESXI включен в кластер vSphere HA, настроить автозапуск ВМ таким образом не удастся, т.к. за доступность ВМ отвечает кластерная служба HA, которая учитывает и запоминает состояние ВМ.
Как вы видите все ВМ, расположенные на данном сервере ESXi, перечислены в списке Manual Startup . Это означает, что после перезагрузки сервера, их нужно включать вручную.
Чтобы они загружались автоматически, нужно вручную добавить в список Automatic Startup . Для этого нажмите кнопку Edit .
В диалоговом окне Edit VM Startup and Shutdown , поставьте чекбокс Autmatically start and stop the virtual machines with the system . Теперь можно настраивать параметры автозапуска ВМ.
Доступны следующие опции включения/выключения виртуальных машин:
- Startup delay — задержка в секундах перед включением ВМ (по умолчанию 120 секунд). С помощью данной задержки можно дождаться загрузки других ВМ, запуска служб (например, AD, DNS, NTP и пр.), а также выполнения скриптов.
- Shutdown delay –задержка перед выключением каждой ВМ (по умолчанию 120 секунд).
- Shutdown Action –доступны четыре варианта действий, которые можно выполнить при выключении виртуальной машины: None, Power Off , Suspend или Guest Shutdown (с помощью возможностей VMTools). По умолчанию используется Power Off.
Можно поместить ВМ в одну из следующих секций:
- Automatic Startup –все ВМ, помещенные в эту секцию запускаются автоматически после загрузки хоста ESXi. Администратор может изменить порядок загрузки виртуальных машин. Например, сначала должен запуститься контроллер домена, потом сервера Exchange и т.д.
- Any Order – виртуальные машины загружаются в произвольном порядке
- Manual Startup — администратор должен вручную включить данные ВМ
Выберите виртуальную машину и с помощью кнопок Вверх/Вниз переместите ее в секцию Automatic Startup . Аналогичную операцию выполните для всех ВМ.
Сохраните изменения, нажав ОК.
Совет . Если HA у вас не настроен, но возможна миграция ВМ между серверами с помощью vMotion, параметры автозапуска переезжают между серверами вместе с виртуальной машиной. Поэтому не придется настраивать автозапуск на всех хостах, где может быть запущена ВМ.
Кроме того, параметры автозапуска ВМ могут быть настроены с помощью PowerCLI. Выведем список ВМ на хосте с их настройками автозапуска:
Get-VM –VMname * | Select-Object VMname, AutomaticStartAction
Чтобы включить автозапуск для всех ВМ, чьё имя начинается с msk, выполните команду:
Если вы запускаете виртуальные машины 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 linux. В этом примере я запускаю виртуальную машину от имени пользователя root, но вам нужно запускать её от того пользователя, к которому добавлены виртуальные машины и от имени которого VirtualBox обычно работает.
Сохраните изменения в файле и выполните следующую команду, чтобы система инициализации перечитала конфигурационные файлы с диска:
В нашем юнит файле мы предусмотрели возможность использования параметра, в котором передается имя или UUID идентификатор виртуальной машины. Если в имени машины есть пробел, то лучше использовать UUID, а иначе можно и имя.
Смотрим список виртуальных машин:
VBoxManage list vms
Теперь давайте запустим машину Ubutnu1804 с UUID ed0ce7dd-0ddb-46bf-913c-876671c4d1f1 с помощью systemd:
sudo systemctl start vbox@ed0ce7dd-0ddb-46bf-913c-876671c4d1f1
Если во время запуска произошла ошибка, вы можете посмотреть её выполнив:
В данном случае машина уже была запущена. Я остановил её и запустил ещё раз с уже помощью systemd. Смотрим статус виртуальной машины:
sudo systemctl status vbox@ed0ce7dd-0ddb-46bf-913c-876671c4d1f1
Если всё хорошо, то всё, что нам осталось, это добавить этот сервис в автозагрузку:
sudo systemctl enable vbox@ed0ce7dd-0ddb-46bf-913c-876671c4d1f1
Выводы
В этой статье мы разобрались как делается автозагрузка виртуальной машины virtualbox. Как видите, всё очень просто и удобно. Теперь ваши виртуальные машины будут всегда запущены.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Оцените статью:
Об авторе
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 и содержит список с именами пользователей, разделенных запятыми. Кроме того, для каждого пользователя может быть настроена отдельная задержка запуска, чтобы избежать перегрузки хоста. Ниже приведен пример конфигурации:
Любой пользователь, который хочет включить автозапуск для отдельных компьютеров, должен указать путь к каталогу базы данных автозапуска с помощью следующей команды:
VBoxManage setproperty autostartdbpath каталог_автозапуска
8.8.9. Автозапуск виртуальных машин во время загрузки хост-системы
--autostart-enabled on | off: включает и отключает автозапуск виртуальной машины при загрузке хост-системы с использованием указанного имени пользователя.
--autostart-delay : указывает задержку в секундах после загрузки хост-системы перед автозапуском виртуальной машины.
при опросе статуса
вьідает такое
вер 07 18:45:46 serv1vvc systemd[1]: Started vbox@VM_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)
Виртуальные машины VirtualBox очень часто используются для тестирования различного программного обеспечения и его взаимодействия между собой. Обычно, таким программам необходим доступ к интернету. Время от времени возникает необходимость протестировать работу программ по сети или даже создать небольшую тестовую лабораторию из виртуальных машин.
В этой инструкции мы рассмотрим как выполняется настройка сети VirtualBox различными способами. Вы узнаете как объединить машины в одну локальную сеть, как дать им доступ к интернету и как связать их с основной системой. Но сначала поговорим о том, как может работать сеть.
Виды сетевых адаптеров VirtualBox
Существует несколько способов как настроить сеть в virtualbox, и каждый из них подходит для лучше для решения одной задачи и меньше для другой. Рассмотрим основные:
- NAT - этот способ используется по умолчанию. Для каждой машины создается отдельная внутренняя локальная сеть, в которой машина получает ip 10.10.0.1. Машина может связаться с интернетом, используя технологию NAT, и вы можете обратиться к машине, используя проброс портов VirtualBox, но если у вас будет две виртуальные машины, то вы уже не сможете между ними так взаимодействовать. И если из основной системы к гостевой можно обратиться, то к основной ни гостевой уже никак не получится;
- Виртуальный адаптер хоста - создается виртуальный сетевой адаптер, к которому можно подключить несколько виртуальных машин, тем самым объединив их в локальную сеть. Доступа к интернету нет, но зато машины находятся в одной сети и каждая имеет свой ip адрес, теперь они могут взаимодействовать между собой. Основная система тоже доступна по ip 192.168.56.1. Машины доступны не только между собой, но и из основной системы;
- Сетевой мост - при таком подключении виртуальная машина становится полноценным членом локальной сети, к которой подключена основная система. Машина использует сетевой интерфейс чтобы получить адрес у роутера и становится доступна для других устройств, как и основной компьютер по своему ip адресу.
- Внутренняя сеть - почти то же самое, что и виртуальный адаптер хоста, только без возможности доступа к виртуальной сети из основной системы, доступа к интернету нет.
- Универсальный драйвер - позволяет использовать драйвер из расширений VirtualBox для связи между машинами, расположенными на разных физических хостах.
Теперь рассмотрим каждый вариант настройки более подробно.
Настройка сети Virtualbox
1. Настройка сети NAT
Здесь почти нет о чем говорить. Получение доступа к сети через NAT включено по умолчанию. Проброс портов я рассматривал в отдельной статье. Но если вы раньше отключали сетевые адаптеры, то чтобы включить NAT обратно достаточно открыть настройки нужной машины:
Перейти на вкладку "Сеть":
Выбрать один из адаптеров. К виртуальной машине можно подключить несколько адаптеров и это очень удобно, так как вы можете комбинировать вместе адаптер виртуального хоста и NAT чтобы получить преимущества обоих режимов. Дальше вам нужно выбрать пункт "NAT" в списке "Тип подключения".
На вкладке "Дополнительно" вы можете настроить марку устройства адаптера и MAC адрес:
Если вы собираетесь устанавливать туда в Windows, то лучше будет работать Intel PRO/1000 MT Desktop, а для Linux можно оставить AMD PCNet FAST III, так как он поддерживается всеми операционными системами.
2. Настройка сети NAT
В версии Virtualbox, начиная с 4.3 была добавлена поддержка сетей NAT, это работает очень похоже на виртуальный адаптер хоста, все машины, подключенные к одной сети могут получить доступ друг к другу, а доступ в интернет выполняется через NAT, но основная система доступа к гостевым не имеет. Чтобы настроить такое подключение нужно сначала создать сеть NAT. Для этого откройте "Файл" -> "Настройки", "Сеть". Здесь перейдите на вкладку "Сети NAT". Дальше нажмите кнопку с зеленым плюсом, чтобы создать новую сеть:
Нажмите "Ok" и закройте это окно. Дальше откройте настройки для виртуальной машины, перейдите на вкладку "Сеть" -> "Адаптер 1":
Выберите "Тип подключения" - "Сеть NAT", а "Имя" - только что созданную сеть.
Теперь все машины, подключенные к этой сети, будут доступны друг другу, как в VMWare.
3. Настройка адаптера виртуального хоста
Теперь задача немного интереснее - нам нужна локальная сеть virtualbox между несколькими виртуальными машинами и хостом. Для того чтобы все это заработало в Linux, нам нужно чтобы были загружены модули ядра vboxnetadp и vboxnetflt:
lsmod | grep vbox
Возможно, для их правильной работы вам придется установить пакет net-tools. Дальше нужно создать сам виртуальный адаптер. Для этого откройте меню "Файл", затем "Настройки" -> "Сеть". Затем нажмите кнопку с зеленым значком плюс, а затем "Ok", все параметры можно оставить по умолчанию. В VirtualBox 5.2 и выше интерфейс был изменен. Теперь вам нужно открыть меню "Инструменты" -> "Менеджер сетей хоста":
Теперь вернитесь к списку виртуальных машин, зайдите в настройки машины, "Сеть":
Выберите "Тип подключения" - "Виртуальный адаптер хоста", а имя vboxnet0, тот, который вы создали раньше.
Для всех машин, которые вы хотите объединить в одну сеть нужно выбирать один и тот же адаптер хоста. Если вы захотите добавить машинам также доступ в интернет, просто перейдите на вкладку "Адаптер 2", включите его и настройте NAT, как описано в первом пункте.
4. Настройка сетевого моста VirtualBox
Режим сетевого моста позволяет виртуальной машине выступать в роли реального сетевого устройства с отдельным ip адресом. Чтобы это настроить откройте это же меню - настойки виртуальной машины, затем "Сеть". Здесь выберите "Тип подключения" - "Сетевой мост":
В поле "Имя" вам необходимо выбрать сетевой интерфейс, который будет использоваться для связи с внешним миром. Минус такого способа в том, что внешние компьютеры смогут получить доступ к виртуальной машине, а это не очень хорошо с точки зрения безопасности.
5. Внутренняя сеть VirtualBox
Режим внутренняя сеть Virtualbox похож на "Виртуальный адаптер хоста", за тем лишь исключением, что из хостовой системы доступа к гостевым не будет, и настроить все немного проще. Достаточно выбрать "Тип подключения" - "внутренняя сеть", а затем просто выбрать нужную сеть в поле "Имя", или создать новую, просто изменив имя текущей.
Как видите, существует тип подключения NAT - где только интернет, Мост - где машина становится членом внешней сети, а все остальные - это настройка виртуальной сети virtualbox, где машины могут видеть друг друга.
Выводы
В этой небольшой статье мы рассмотрели как выполняется настройка сети VirtualBox, как видите, это не так уж сложно, как может показаться на первый взгляд, несмотря на операционную систему, которую вы используете. В большинстве случаев достаточно сети NAT, но иногда может понадобиться виртуальный адаптер хоста, все же остальные режимы используются намного реже.
Читайте также: