Virtualbox автостарт виртуальной машины
Как автоматически запускать машины Virtual Box при загрузке?
У меня в Ubuntu12.04 много виртуальных машин, каждый раз, когда я выключаюсь или перезагружаюсь, я должен запускать их одну за другой.
Я хочу помочь в написании скрипта для автоматического запуска машин VBox при загрузке.
13 ответов
Вы можете использовать сервис автоматического запуска VirtualBox. Хороший учебник, описывающий, как это сделать, размещен в блоге «Life of a Geek Admin».
Следующие шаги адаптированы из связанного сообщения в блоге:
Сначала вам нужно создать файл /etc/default/virtualbox и добавить несколько переменных.
VBOXAUTOSTART_DB, который содержит абсолютный путь к каталогу базы данных автозапуска и
VBOXAUTOSTART_CONFIG, который содержит расположение настроек конфигурации автозапуска. Файл должен выглядеть примерно так:
Теперь нам нужно создать /etc/vbox/vbox.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), чтобы создать ярлык для каждой виртуальной машины на рабочем столе.
И, конечно же, при перезапуске хост-компьютера 3 виртуальные машины запускались автоматически.
PS: увы, у меня все еще чего-то не хватает, потому что часто виртуальные машины не запускаются при загрузке, вместо этого они генерируют диалоговое окно с сообщением об ошибке, в котором говорится, что они заблокированы, даже если я сказал им отключиться до перезагрузки хоста.
Автоматический запуск виртуальных машин virtualbox при загрузке windows-хоста
Есть у одних моих клиентов хитрая программа, защита которой привязана к аппаратной части пк. Мы посадили эту программу на виртуальную машину virtualbox, а виртуалбокс установили на один из виндовых серверов. Все бы ничего, но при перезагрузке физического сервера приходилось логиниться на него, запускать виртуальную машину и оставлять все это добро работать в терминальной сессии. Неудобно.
Оказалось, что можно запросто организовать автоматический запуск виртуальных машин при загрузке сервера через VirtualboxVmService. Качаем программу отсюда http://sourceforge.net/projects/vboxvmservice/ Инсталлируем, чуть подправляем конфиг, перезагружаемся — и все работает (в идеале).
Нюанс: у нас установлен Virtualbox устаревшей версии. При попытке старта созданной программой службы мы получили в логе VBoxVmService.log сообщение:
Error creating VirtualBox instance! rc = 0x80004002
Погуглил. Наткнулся на предложение обновить версию VirtualboxVmService в соответствии с версией самого виртуалбокса. Догадался, что у нас с точностью до наоборот: для старой версии виртуалбокса нужен старый VirtualboxVmService. Скачал устаревшую версию и все заработало с полпинка!
Документация на VirtualboxVmService.
На всякий случай приведу перевод документации текущей версии 4.1
Шаг 1.
Убедитесь что Virtualbox установлен и ваши виртуальные машины могут стартовать с помощью менеджера virtualbox без каких либо проблем. Выключите виртуальные машины и закройте VirtualBox Manager.
ВАЖНО: Если вы хотите управлять вашей виртуальной машиной с помощью VRDP, Включите поддержку удаленного монитора в настройках display settings и определите соответствующий порт для каждой виртуальной машины индивидуально (т.е 3010 для Vm0, 3020 для Vm1, и т.д). Не используйте для этих целей стандартный порт 3389!
Шаг 2.
Скачайте и распакуйте последний релиз VBoxVmService в c:\vms.
Шаг 3
Откройте VBoxVmService.ini в любом текстовом редакторе и отредактируйте под ваши нужды. Этот файл содержит пример установки с двумя виртуальными машинами.
[Vm1]
VmName=winxp Как в можете видеть значения ниже почти повторяются для каждой [VmX]-секции файла
ShutdownMethod=acpipowerbutton
AutoStart=no Эта VM не будет стартовать автоматически.
##############################################################################
#
# ЧАСТЬ II — INSTALLATION
#
##############################################################################
Шаг 1. (для WINXP / SERVER2003) Запустите CMD (Командная строка) из вашего старт меню.
Шаг 1. (для VISTA / SERVER2008 / WIN7) Кликните правой кнопкой мыши по CMD (командная строка) и выберете «Запуск от имени администратора» в контекстном меню.
Step 2. Инсталируйте сервис. В терминальном окне наберите:
cd C:\vms [ENTER]
Шаг 3. Перезагрузите вашу систему.
Если все сделано правильно, вы сможете подключиться к вашей VM с помощью VRDP клиента (или ssh клиента, если вы сконфигурировали ssh сервер внутри вашей VM). Если нет то обратитесь к секции TROUBLESHOOTING которая расположена ниже для отладки.
##############################################################################
#
# ЧАСТЬ III — UNINSTALL
#
##############################################################################
Автозапуск виртуальной машины VirtualBox
Если вы запускаете виртуальные машины VirtualBox на сервере, то скорее всего, захотите, чтобы они оставались запущенными даже после неожиданной перезагрузки сервера.
В этой небольшой статье мы рассмотрим как настроить автозапуск виртуальной машины VirtualBox с помощью системы инициализации systemd, которая сейчас используется повсеместно.
Автозапуск виртуальной машины в VirtualBox
Давайте создадим файл юнита, который будет управлять автозагрузкой. Для этого выполните такую команду:
В открывшемся редакторе вставьте такой текст:
С помощью этого юнита мы и будем делать автозапуск 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
В таком случае вместо выключения виртуальной машины, будет выполнено сохранение текущего состояния.
Все уже придумано ораклом, перевод выдержки из официального мануала:
9.21. Запуск виртуальных машин во время загрузки системы
Вы можете запускать виртуальные машины автоматически во время загрузки системы на платформах Linux, Oracle Solaris и Mac OS X для всех пользователей.
9.21.1. Linux: запуск службы автозапуска с помощью init
# Бобу разрешено запускать виртуальные машины, но запуск
# будет отложен на 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)
6.1.3 Автостарт виртуальной машины в VirtualBox при запуске системы
Настройка сервиса автозапуска виртуальной машины
Запустите терминал и выполните команду:
VBOXAUTOSTART_DB — определяет абсолютный путь к каталогу базы данных автозапуска, обычно это / etc / vbox.
VBOXAUTOSTART_CONFIG — определяет путь к конфигурации автозапуска виртуальной машины.
Настройка конфигурации автостарта, создайте файл
Содержимое файла (смените user — на вашего пользователя):
• default_policy — определяет, разрешать или запрещать автоматический запуск виртуальной машины по умолчанию. В примере выше мы отказали кому-либо в автоматическом запуске виртуальной машины и явно разрешили одному пользователю user.
• username (user) — с помощью политики запрета по умолчанию вы можете определить конкретных пользователей, которым разрешено автоматически запускать виртуальную машину (allow = trues). Вы также можете определить, как долго задерживать запуск виртуальной машины. 10 секунд используется в этой демонстрации.
Определение владельца директории базы данных автозапуска
Для определения владельца директории базы данных автозапуска выполните следующие команды:
Назначьте группе разрешения на запись в каталоге базы данных автозапуска:
Как user, вы можете включить автозапуск для отдельных машин. Для этого необходимо сначала определить путь к каталогу базы данных.
Добавление виртуальной машины в автозапуск
где redos — это UUID или имя вашей виртуальной машины.
Далее нужно создать скрипт для автозапуска машины:
Сделайте созданный файл исполняемым::
Проверьте, что файл выполняется успешно:
Пример вывода результата команды:
Виртуальная машина должна будет запуститься в virtualbox.
Далее создайте сервис, который будет использоваться для автоматического запуска виртуальной машины (смените user — на вашего пользователя):
Предоставьте необходимые права следующей командой:
Добавьте сервис в автозагрузку и запустите его:
При успешном старте сервиса проверьте virtualbox на наличие работающей машины.
При перезагрузке системы машина запустится до ввода пароля пользователя.
Для отключения автозапуска виртуальной машины выполните команды:
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.
Автоматический запуск виртуальной машины VirtualBox
VirtualBox – бесплатная и самая популярная программа для запуска нескольких виртуальных операционных систем во время работы одной настоящей. В некоторых ситуациях, при наличии у специализированного ПО защиты от пиратства, привязанной к аппаратной части компьютера, например, требуется запускать виртуальную машину регулярно. Но делать это вручную не удобно. О том, как настроить в VirtualBox автозапуск виртуальной машины и расскажет эта статья.
Настройка автозапуска виртуальной машины Virtualbox
Сделать это можно 3 способами:
Команда для автозапуска
Команды, настраивающей в одно действие запуск нужной виртуальной машины при старте компьютера, не существует – VirtualBox не поддерживает эту функцию. Но существует команда, запускающая виртуальную машину через командную строку.
Записывается она так: «C:\Program Files\Oracle\VirtualBox\VBoxManage.exe» startvm Win7. В кавычках указывается путь к программе-менеджеру виртуальных машин. Он входит в состав VirtualBox. Параметр «startvm» обозначает запуск виртуальной машины, а Win7 – ее название.
Ее нужно добавить в автозапуск Windows, на чем и основаны все способы автозапуска виртуальной машины в VirtualBox.
Создание ярлыка
Существует 2 способа это сделать. Первый метод простой и может использоваться в последних версиях VirtualBox. Скачать их можно с нашего сайта.
Порядок действий следующий:
Второй способ сложнее, но подходит для любой версии VirtualBox. Порядок действий следующий:
Найти файл VboxManage.exe с помощью Проводника. Записать полный путь к нему в Блокнот.
Создание задачи в Планировщике
Порядок действий для создания задания в Windows 7,8 и 10 одинаков и состоит в следующем:
VirtualBoxVmService
Для этого способа потребуется сторонняя утилита – VirtualBoxVmService. Любую из версий этой программы, включая самые новые, можно скачать на нашем сайте.
Порядок действий следующий:
Важные нюансы
Для того, чтобы осуществить автозапуск VirtualBox после первой перезагрузки нужно учесть 3 особенности:
Добавление виртуальной машины в автозапуск ОС Windows – несложная для продвинутого пользователя задача, требующая от него умения работать с командной строкой.