- Как автоматически запускать машины Virtual Box при загрузке?
- 13 ответов
- AutoStart VirtualBox VMs on System Boot on Linux
- AutoStart VirtualBox VMs on System Boot on Linux
- Configure VirtualBox Autostart Service
- Set Ownership of Database directory
- Enable Virtual Machine Autostart
- Restart vboxautostart-service
- Testing the Virtual Machine autostart
- Как настроить автозапуск виртуальной машины VirtualBox при включении хоста?
- Автозапуск виртуальной машины VirtualBox
- Автозапуск виртуальной машины в VirtualBox
- Выводы
- Оцените статью:
- Об авторе
- 9 комментариев
Как автоматически запускать машины Virtual Box при загрузке?
У меня в Ubuntu12.04 много виртуальных машин, каждый раз, когда я выключаюсь или перезагружаюсь, я должен запускать их одну за другой.
Я хочу помочь в написании скрипта для автоматического запуска машин VBox при загрузке.
13 ответов
Вы можете использовать сервис автоматического запуска VirtualBox. Хороший учебник, описывающий, как это сделать, размещен в блоге «Life of a Geek Admin».
Следующие шаги адаптированы из связанного сообщения в блоге:
Сначала вам нужно создать файл /etc/default/virtualbox и добавить несколько переменных.
VBOXAUTOSTART_DB, который содержит абсолютный путь к каталогу базы данных автозапуска и
VBOXAUTOSTART_CONFIG, который содержит расположение настроек конфигурации автозапуска. Файл должен выглядеть примерно так:
Теперь нам нужно создать /etc/vbox/vbox.cfg файл и добавить
Примечание: если имя файла vbox.cfg выше не работает, попробуйте назвать autostart.cfg ,
Если вы единственный пользователь, вы можете просто добавить строку default_policy = allow к vbox.cfg файл.
Установите права доступа к каталогу для группы vboxuser и убедитесь, что пользователи могут писать в каталог, а также прикреплять биты.
Добавьте каждого пользователя в vboxusers группа.
(заменить USERNAME с именем пользователя)
ПРИМЕЧАНИЕ. Если вы изменили разрешения группы для текущего пользователя, выйдите из системы и снова войдите в нее, чтобы обновить разрешения. (кредит @ кР105)
Каждый пользователь, который хочет включить автозапуск для отдельных машин, должен указать путь к каталогу базы данных автозапуска с помощью
и включить автозапуск для отдельной виртуальной машины с
Это создаст myuserid.start файл в /etc/vbox каталог
Теперь перезапустите vboxautostart-service, чтобы прочитать изменения.
Перезагрузите систему и ваша виртуальная машина должна запуститься
У меня были похожие несчастные случаи, когда я пытался выполнить эту операцию на ванильном LTS.
В этой версии файл ключа /etc/init.d/vboxautostart-service не был установлен.
Насколько я знаю, все VitualBox и требования были введены с помощью apt-get, поэтому я не могу сказать, почему файл ‘vboxautostart-service’ также не был предоставлен. Но чтобы преодолеть это, вот мое обновление к посту kdmurray.
1) файл / etc / default / virtualbox для меня существовал. Итак, должны добавить переменные:
2) Необходимо создать /etc/vbox/autostart.cfg, как указано в OP.
6б) Нужно получить скрипт vboxautostart-service и сделать его исполняемым.
6c) Оповещение контроллера rc.d, но я использовал 24 в качестве времени запуска. Ставлю только 20 и он не запускается. Возможно, он работал еще до того, как Virtualbox работал.
Затем перезагрузка запустила виртуальную машину правильно.
После многих несчастных часов, пытаясь заставить работать процедуры из kdmurray выше, я безуспешно нашел способ, который работал просто.
Сначала мой хост Linux (Mint 17) был настроен во время загрузки для автоматического входа в мою основную учетную запись.
Во-вторых, я использовал средства VirtualBox GUI (v4.3.12), чтобы создать ярлык для каждой виртуальной машины на рабочем столе.
Далее: я уже обнаружил, что при вызове Меню-> Центр управления -> Запускаемые приложения -> Добавить и добавлении ярлыков на рабочем столе были получены файлы, которые не работали, я заметил из другого ответа на этой странице, что местоположение стартапов — /home/USERNAME/.config/autostart, поэтому я щелкнул правой кнопкой мыши по каждому ярлыку виртуальной машины на рабочем столе, а затем вставил их в эту папку, переписав более ранние файлы дерьма. Теперь они разработали «красивые» иконки VirtualBox.
И, конечно же, при перезапуске хост-компьютера 3 виртуальные машины запускались автоматически.
PS: увы, у меня все еще чего-то не хватает, потому что часто виртуальные машины не запускаются при загрузке, вместо этого они генерируют диалоговое окно с сообщением об ошибке, в котором говорится, что они заблокированы, даже если я сказал им отключиться до перезагрузки хоста.
Источник
AutoStart VirtualBox VMs on System Boot on Linux
On a Linux system with VirtualBox installed, you can start VMs automatically during system boot. In this guide, we are going to learn how to autostart VirtualBox VMs on system boot on Linux. This demo uses Ubuntu 16.04 as the Linux machine that hosts multiple VirtualBox 6.0 virtual machines.
AutoStart VirtualBox VMs on System Boot on Linux
VirtualBox comes with a service called vboxautostart-service that makes it easy to automatically start virtual machines during system reboot.
Configure VirtualBox Autostart Service
In order to configure a VirtualBox VM to start on system boot on Linux, you need to activate the autostart service. The autostart service can be activated by setting two variables in /etc/default/virtualbox;
- VBOXAUTOSTART_DB – which defines the absolute path to the autostart database directory, usually the /etc/vbox.
- VBOXAUTOSTART_CONFIG – defines the path to the virtual machine autostart configuration.
These variables can be defined as;
To place these variables in the /etc/default/virtualbox, run the command below;
Define the virtual machine autostart configuration settings. The autostart configuration file contains options that controls how the virtual machine is auto started.
- default_policy – defines whether to allow or deny the virtual machine autostart by default. In our example above, we denied any one from auto-starting the VM and explicitly allow one user, amos.
- username (amos) – with the default deny policy, you can define the specific users that are allowed to autostart the virtual machine (allow = trues). You can also define how long to delay the VM startup. 10 seconds is used in this demo.
Set Ownership of Database directory
The database directory, /etc/vbox, should be writable by the user to be used to start VMs automatically. To make it easy, you can simply add your user to vboxusers group and set the group ownership of the database directory to vboxusers group. After that, set the write permissions for the group. In this case, amos user is to be used to automatically start the virtual machine.
Assign the group write permissions on the autostart database directory.
To shield the directory from being modified or deleted by other users except the owner or the root user, set sticky bit.
Enable Virtual Machine Autostart
As a user, you can enable autostart for individual machines. This requires that you define the path to the database directory first.
Once that is done, you can now setup the virtual machine to automatically start on system boot.
Where fedora30 is the UUID or the name of your virtual machine.
Restart vboxautostart-service
The configuration is now done. To effect the settings, you need to restart the vboxautostart-service.
Testing the Virtual Machine autostart
To test that your virtual machine can actually autostart on system boot, reboot you system and check. When system boots, your VM should now be running.
If you which to disable the virtual machine autostart;
That is all on how to autostart VirtualBox VMs on system boot on Linux. Feel free to drop any comment. Enjoy.
Источник
Как настроить автозапуск виртуальной машины VirtualBox при включении хоста?
Добрый день
Система: Ubuntu 14.04.2 LTS + VirtualBox 4.3.28
Пользователь запускающий Виртуальные машины: vbox
Виртуальные машины:
Задача: Настроить автозапуск Виртуалки «1C: при запуске хоста. В процессе настройки использую вот этот мануал в котором описываться новые возможности появившиеся в virtualbox 4.2.
Пробовал настроить несколько раз все равно получаю одно и то же:
1 — Как я понимаю когда я пишу команду vboxmanage modifyvm VM_NAME —autostart-enabled on — то в папке VBOXAUTOSTART_DB (/etc/vbox) должен появится файл USERNAME.start. Так вот у меня этот файл появляется только если я выполню команду vboxmanage modifyvm VM_NAME —autostart-enabled on для обеих своих существующих машин. Соответственно когда я запускаю service vboxautostart-service start то он либо ничего не делает (когда файла нет), либо запускает обе машины (когда файл есть), запустить только одну машину у меня не получается.
2 — Если оставить этот файл и перезапустить хост то ни одна из машин всё равно не запустится и их статусы останутся такими, какими были до перезагрузки, то есть получается что даже попыток запустится не происходит.
- Вопрос задан более трёх лет назад
- 13704 просмотра
Не совсем понял как Вы делали, но просто запустить ВМ можно так:
Создать файл
nano /etc/init.d/vm_start.sh
Со следующим содержимым:
Затем сделать скрипт исполняемым и добавить в автостарт:
После рестарта машины запустятся две указанные виртуалки.
Источник
Автозапуск виртуальной машины 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 обычно работает.
Сохраните изменения в файле и выполните следующую команду, чтобы система инициализации перечитала конфигурационные файлы с диска:
В нашем юнит файле мы предусмотрели возможность использования параметра, в котором передается имя или 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. Как видите, всё очень просто и удобно. Теперь ваши виртуальные машины будут всегда запущены.
Нет похожих записей
Оцените статью:
Об авторе
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.
9 комментариев
добрый день сделал все как у вас, но при перезагрузки не запускается что может быть не подскажите?
Почему, после того, как я перенес систему с HDD на SSD виртуальная машина перестала автоматически запускаться?
Скорее всего сменился UUID
класс
работает
СПС
Спасибо за статью, очень пригодилось. Ещё нашёл в интернетах, что в ExecStop можно вместо acpipowerbutton указать savestate
В таком случае вместо выключения виртуальной машины, будет выполнено сохранение текущего состояния.
Доброго времени суток. У меня вот такая ошибка (No files found for vbox@.service.)
Как быть ?
Все уже придумано ораклом, перевод выдержки из официального мануала:
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 vbox@VM_1.service.
вер 07 18:46:54 serv1vvc systemd[1]: /etc/systemd/system/vbox@.service:1: Assig>
вер 07 18:46:54 serv1vvc systemd[1]: /etc/systemd/system/vbox@.service:2: Assig>
вер 07 18:46:54 serv1vvc systemd[1]: /etc/systemd/system/vbox@.service:3: Assig>
вер 07 18:47:14 serv1vvc systemd[1]: /etc/systemd/system/vbox@.service:1: Assig>
вер 07 18:47:14 serv1vvc systemd[1]: /etc/systemd/system/vbox@.service:2: Assig>
вер 07 18:47:14 serv1vvc systemd[1]: /etc/systemd/system/vbox@.service:3: Assig>
вер 07 19:11:59 serv1vvc systemd[1]: /etc/systemd/system/vbox@.service:1: Assig>
вер 07 19:11:59 serv1vvc systemd[1]: /etc/systemd/system/vbox@.service:2: Assig>
вер 07 19:11:59 serv1vvc systemd[1]: /etc/systemd/system/vbox@.service:3: Assig>
lines 1-17/17 (END)
Источник