Автозапуск Virtualbox виртуальной машины ubuntu

Обновлено: 02.07.2024

Виртуальная коробка Oracle® VM

Руководство администратора для версии 6.0

2.22. Запуск виртуальных машин во время загрузки системы

Вы можете автоматически запускать виртуальные машины во время загрузки системы на платформах Linux, Oracle Solaris и Mac OS X для всех пользователей.

2.22.1. Linux: запуск службы автозапуска с помощью init

В Linux служба автозапуска активируется установкой двух переменных в файле /etc/default/virtualbox. Первый — это VBOXAUTOSTART_DB, который содержит абсолютный путь к каталогу базы данных автозапуска. Каталог должен иметь доступ на запись для каждого пользователя, который должен иметь возможность автоматически запускать виртуальные машины. Кроме того, для каталога должен быть установлен липкий бит. Вторая переменная — VBOXAUTOSTART_CONFIG, которая указывает службе на файл конфигурации автозапуска, который используется во время загрузки, чтобы определить, разрешать ли отдельным пользователям автоматически запускать виртуальную машину и настраивать задержки запуска. Файл конфигурации можно поместить в /etc/vbox и он содержит несколько параметров. Одним из них является default_policy, который определяет, разрешает ли служба автозапуска или запрещает запуск виртуальной машины для пользователей, которых нет в списке исключений. Список исключений начинается с exception_list и содержит разделенный запятыми список с именами пользователей. Кроме того, для каждого пользователя можно настроить отдельную задержку запуска, чтобы избежать перегрузки хоста. Пример конфигурации приведен ниже:

Любой пользователь, который хочет включить автозапуск для отдельных компьютеров, должен указать путь к каталогу базы данных автозапуска с помощью следующей команды:

2.22.2. Oracle Solaris: запуск службы автозапуска с помощью SMF

На хостах Oracle Solaris демон автозапуска Oracle VM VirtualBox интегрирован в структуру SMF. Чтобы включить его, вы должны указать службе существующий файл конфигурации, который имеет тот же формат, что и в Linux, см. Раздел 2.22.1, «Linux: запуск службы автозапуска с помощью init». Например:

Когда все настроено правильно, вы можете запустить службу автозапуска Oracle VM VirtualBox с помощью следующей команды:

Для получения дополнительной информации о SMF см. документацию по Oracle Solaris.

2.22.3. Mac OS X: запуск службы автозапуска с помощью launchd

В Mac OS X launchd используется для запуска службы автозапуска Oracle VM VirtualBox. Пример файла конфигурации можно найти в /Applications/VirtualBox.app/Contents/MacOS/org.virtualbox.vboxautostart.plist. Чтобы включить службу, скопируйте файл в /Library/LaunchDaemons и измените ключ Disabled с true на false. Кроме того, замените второй параметр на существующий файл конфигурации, который имеет тот же формат, что и в Linux, см. Раздел 2.22.1, «Linux: запуск службы автозапуска с помощью init».

Чтобы вручную запустить службу, используйте следующую команду:

Для получения дополнительной информации о настройке служб запуска см.:

2.22.4. Windows: запуск службы автозапуска с помощью службы Windows

В Windows автозапуск реализован как служба Windows. Служба устанавливается для каждого пользователя со своими учетными данными. Перед установкой любых служб автозапуска в системе сначала необходимо определить переменную среды VBOXAUTOSTART_CONFIG в системных переменных с указанием пути к файлу конфигурации автозапуска. Файл конфигурации имеет тот же формат, что и в Linux, см. Раздел 2.22.1, «Linux: запуск службы автозапуска с помощью init», за исключением того, что имя пользователя может быть указано в следующих форматах: «пользователь», «домен\пользователь», ".\user" и "user@domain".

Чтобы включить автозапуск для определенного пользователя, член группы администраторов должен выполнить следующую команду:

Файл паролей должен содержать пароль, за которым следует разрыв строки. Остальная часть файла игнорируется. У пользователя будет запрошен пароль, если файл паролей не указан.

Чтобы отключить автозапуск для определенного пользователя, член группы администраторов должен выполнить следующую команду:

Если пользователь изменил свой пароль, член группы администраторов должен либо переустановить службу, либо изменить учетные данные службы с помощью диспетчера служб Windows. Из-за политик безопасности Windows служба автозапуска не может быть установлена ​​для пользователей с пустыми паролями.

Авторское право © 2004, 2020 Oracle и/или ее дочерние компании. Все права защищены. Официальные уведомления

В системе Linux с установленным VirtualBox вы можете автоматически запускать виртуальные машины во время загрузки системы. В этом руководстве мы узнаем, как автоматически запускать виртуальные машины VirtualBox при загрузке системы в Linux. В этой демонстрации используется Ubuntu 16.04 в качестве машины Linux, на которой размещено несколько виртуальных машин VirtualBox 6.0.

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

VirtualBox поставляется со службой vboxautostart-service, которая упрощает автоматический запуск виртуальных машин во время перезагрузки системы.

Настройка службы автозапуска VirtualBox

Чтобы настроить виртуальную машину VirtualBox для запуска при загрузке системы в Linux, вам необходимо активировать службу автозапуска. Службу автозапуска можно активировать, установив две переменные в /etc/default/virtualbox;

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

Эти переменные могут быть определены как;

Чтобы поместить эти переменные в /etc/default/virtualbox, выполните приведенную ниже команду;

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

Установить владельца каталога базы данных

Каталог базы данных /etc/vbox должен быть доступен для записи пользователем, чтобы он использовался для автоматического запуска виртуальных машин. Чтобы упростить задачу, вы можете просто добавить своего пользователя в группу vboxusers и установить групповое владение каталогом базы данных для группы vboxusers. После этого установите права записи для группы. В этом случае для автоматического запуска виртуальной машины будет использоваться пользователь amos.

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

Чтобы защитить каталог от изменения или удаления другими пользователями, кроме владельца или пользователя root, установите бит закрепления.

Включить автозапуск виртуальной машины

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

После этого вы можете настроить виртуальную машину на автоматический запуск при загрузке системы.

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

Перезапустите службу vboxautostart

Конфигурация завершена. Чтобы настройки вступили в силу, вам необходимо перезапустить службу vboxautostart.

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

Чтобы проверить, действительно ли ваша виртуальная машина может автоматически запускаться при загрузке системы, перезагрузите систему и проверьте. Когда система загрузится, ваша виртуальная машина должна быть запущена.

Если вы хотите отключить автозапуск виртуальной машины;

Это все о том, как автоматически запускать виртуальные машины VirtualBox при загрузке системы в Linux. Не стесняйтесь оставлять любые комментарии. Наслаждайтесь.


Я не гуру Linux и действительно не смог понять, как эффективно использовать командную строку, но, тем не менее, готов попробовать.

Я нашел тонны инструкций, пока что все, что мне нужно, чтобы настроить это, но все они начинаются с того, что говорят, что это просто.

Есть ли какие-либо инструкции по графическому интерфейсу или просто документация, в которой говорится, сделайте это, и оно сработает? Может я просто не в том районе ищу?

Заранее спасибо

Редактировать: (добавляя всю необходимую информацию)


Это просто дружеское напоминание на случай, если вы что-то пропустили. Ваше сообщение должно включать:

Версия VirtualBox, которую вы используете

Хост и гостевая операционная система

Независимо от того, включили ли вы VT-x/AMD-V (применимо ко всем хостам под управлением 6.1 и выше) и отключили HyperV (применимо к хостам Windows 10)

Установлены ли гостевые дополнения и/или расширения хоста (это решает 90% проблем, с которыми мы сталкиваемся)

ПЛЮС подробное описание проблемы, ваши исследования и действия, которые вы предприняли для ее устранения. Прежде чем задавать простые вопросы, проверьте руководство Google и VirtualBox. Пожалуйста, также ознакомьтесь с нашими часто задаваемыми вопросами, и если вы обнаружите, что там есть ответ на ваш вопрос, ПОЖАЛУЙСТА, удалите свой пост или, по крайней мере, измените чутье на Решено.
Если вы впервые создаете виртуальную машину, у нас есть руководство на нашей вики. который охватывает важные шаги. Пожалуйста, прочтите это здесь. Если вы выполнили эти требования, вы можете проигнорировать этот комментарий. Ваше сообщение не было удалено — не отправляйте его повторно. Спасибо, что нашли время, чтобы помочь нам помочь вам! Кроме того, ПОЖАЛУЙСТА, не забудьте изменить стиль своего сообщения на Решено после того, как вам помогли!

Я бот, и это действие было выполнено автоматически. Пожалуйста, свяжитесь с модераторами этого субреддита если у вас есть какие-либо вопросы или проблемы.

Virtualbox для создания компьютера внутри другого компьютера

Автозапуск виртуальных машин Virtualbox

Итак.конечно, все развивается быстро, и другие не отстают. У нас есть systemd с 15.10 или около того, и это было заметное изменение в 16.04. Мы фактически переключились на Snap! Веб-сайты и это очень помогают, поскольку с тех пор они очень надежны (старые версии были действительно плохими по сравнению с ними).

Сначала я нашел ответ Stackoverflow, описывающий старый способ, и он не работал, поэтому я решил перейти на systemd. Я нашел эту страницу об этом, и это уже довольно хорошо! Всего несколько вещей, которые мне пришлось настроить в моей системе, чтобы все работало правильно.

Удаление старого способа

Чтобы убедиться, что все работает правильно, удалите файлы из старой среды, если вы их создали. Если вы внесли изменения в некоторые из них, вы, вероятно, захотите отменить эти изменения.

Это сделано для того, чтобы старый способ не сработал внезапно и не испортил настройку systemd.

Со своей стороны я отредактировал файл /etc/default/virtualbox, добавив следующие две переменные:

Поэтому я удалил эти две строки.

Однако я также изменил следующее и сохранил:

Я предпочитаю правильное отключение APCI и простое отключение питания. Если выключение займет слишком много времени, мы все равно получим отключение питания (т. е. убийство).

Если вы сделали что-то еще, чтобы попытаться заставить работать старый способ, обязательно верните и это. В этом вопросе вы сами.

Создать служебный файл

Теперь вы готовы создать служебный файл.

У меня почти то же самое, что и на странице, на которую я ссылался выше, за исключением vboxdrv.service . Я не слишком уверен, откуда это взялось, но в Ubuntu 18.04 такого нет. Хотя я удаляю эту ссылку.

Сценарий включает два имени, которые вам нужно изменить:

vm1 — введите имя вашей машины Virtualbox (это имя появляется три раза)
alexis — если вы тоже не alexis и ваша учетная запись не имеет такого имени, измените это имя

Затем сохраните файл в /etc/systemd/system/ .

Например, если вы используете gvim для редактирования файлов:

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

Примечание: vboxdrv.service взят из комментария (см. ниже) и должен помочь еще больше (например, у меня были проблемы с запуском моих служб время от времени, большую часть времени мне все равно приходилось перезапускать их вручную — после перезагрузки мне придется подтверждать, что это работает каждый раз).

После того, как файл будет готов, вам нужно указать systemd перезагрузить все, включая этот новый файл. Это может быть сделано автоматически, но на всякий случай вот команда, которая вам нужна:

Теперь вы готовы использовать этот сервис.

Примечание. Чтобы просмотреть список служб, запущенных в вашей системе, проще всего использовать следующую команду:

Он автоматически отправляет выходные данные в less, поэтому вам не нужно передавать данные вручную. В нижней части списка приводится краткое объяснение того, что обозначают столбцы. В частности, если в столбце указано «сбой», служба не работает должным образом.

Включить/запустить/остановить службу

Теперь, когда мы создали файл службы, мы хотим включить и запустить его. Это предполагает, что ваша виртуальная машина готова к запуску, как если бы вы перезагружали компьютер.

Обратите внимание, что в приведенном выше сценарии ничего не говорится о том, что одна служба должна запускаться до и/или после другой. Это выполнимо, но вы должны спросить себя, имеет ли смысл запускать компьютеры в строго определенном порядке. т. е. если что-то выходит из строя на компьютере B, когда A не работает, он должен продолжать попытки, пока не заработает.

Во-первых, вы можете проверить, распознает ли systemd ваш файл, с помощью:

Команда status также полезна для проверки того, запущена служба или нет.

Теперь вы можете запустить виртуальную машину.

Он должен вернуться на следующую строку, если что-то не пойдет не так.

Если у вас открыт пользовательский интерфейс Virtualbox, вы должны увидеть, что он запускается там. Значок меняется с тем, что отображается на экране, как обычно. Однако, поскольку мы используем безголовую функцию, вы не видите реальную часть графического интерфейса. Вы можете отобразить это окно в любое время во время работы машины, выбрав меню « → Показать» (оно находится в меню «Машина» или при щелчке правой кнопкой мыши на виртуальной машине).

Наконец, чтобы виртуальная машина запускалась автоматически при перезагрузке, ее необходимо включить. Это делается с помощью команды enable следующим образом:

Вы можете проверить текущий статус в любое время. Обратите внимание, что состояние включения отображается само по себе. В выводе две записи. Оба должны быть включены. Вот пример вывода. Я выделил красным цветом включенные функции, которые вы ищете:

Последние несколько строк — это журналы (называемые журналами в systemd), показывающие, что произошло. В нем должно быть сказано, что он запустил вашу систему Virtualbox.

Позже вы можете отключить эту службу следующим образом:

что предотвратит автоматический перезапуск при перезагрузке. Обратите внимание, что вы по-прежнему можете запустить виртуальную машину, помеченную как отключенную.

Переименование ВМ

Я использую довольно длинные имена для своих ВМ, в том числе:

  1. Название того, для чего я использую виртуальную машину
  2. Название ОС (Ubuntu, Fedora, FreeBSD, SunOS, MacOS и т. д.)
  3. Имя хоста компьютера, на котором запущена ВМ (поскольку, когда вы запускаете ВМ на 3 или 4 разных компьютерах, в противном случае сложно понять, что к чему)
  4. Процессор (i86x или amd64)
  5. Дополнительное имя компьютера (т. е. я создаю кластеры, которые получают одно имя виртуальной машины + одно дополнительное имя, например внешний интерфейс, база данных, серверная часть).

Я думаю, что такие длинные имена отлично подходят для интерфейса Virtualbox, но при вводе вашего служебного файла могут возникнуть проблемы (между тире, пробелами, круглыми скобками и просто тот факт, что такие длинные имена трудно воспроизвести без нескольких ошибки в них. )

Поэтому мне пришлось переименовать виртуальные машины. Круто, однако, то, что теперь у нас есть возможности группировки. Таким образом, я все еще могу придерживаться своего безумного соглашения об именах для группы и называть каждый компьютер в группе как-то очень просто (например, _ — например, wordpress_frontend и wordpress_database ).

Где находится окно моей виртуальной машины?

Сценарий запустит виртуальную машину без головы. Это действительно важно, если вы запускаете виртуальную машину на сервере без X-Windows. (Да! Это выполнимо, я просто не совсем понимаю, как вы делаете установку вручную. Это должно быть несколько болезненно!)

Ваши виртуальные машины будут запускаться вместе со средой X-Windows, поэтому система X-Windows может быть не готова к открытию окна. Поэтому вместо этого мы запускаем виртуальные машины без головы.

Когда вы находитесь в графическом интерфейсе Virtualbox, вы видите работающие виртуальные машины. У них есть зеленая стрелка. Щелкните их правой кнопкой мыши и выберите «→ Показать», чтобы открыть окно. Теперь у вас есть полный доступ к консоли виртуальной машины. Чтобы снова скрыть окно, вы, конечно, можете свернуть его. Однако, если вы хотите закрыть X-Windows, но оставить виртуальную машину работающей, используйте параметр «Отключить графический интерфейс» в меню «Машина».

В более старых версиях (до 5.x) отключение графического интерфейса выполнялось различными способами:

Различные ошибки

Виртуальная машина неожиданно завершила работу во время запуска с кодом выхода 0 (0x0).

Глядя на это, я не мог понять, почему одна из моих виртуальных машин не запускается, особенно с кодом выхода 0. Сначала я проверил, что машина все еще существует, как и ожидалось (правильное местоположение и т. д.). был там.

Итак, затем я поискал в Интернете и нашел страницу, на которую я даже не буду ссылаться здесь, она была совершенно бесполезна, за исключением одной маленькой детали: в одном из сообщений один человек спрашивал другого, что они видели в своем файле журнала. да. Почему бы мне не взглянуть на это хоть раз.

Вот несколько последних сообщений:

И, что интересно, они дают вам точный ответ, что делать дальше (3-я строка в логах выше):

  • Sостановите все свои виртуальные машины;
  • Выйти из VirtualBox;
  • Убедитесь, что все службы виртуальных машин отключены (перезагрузите компьютер, если хотите убедиться на 100 %); и
  • Перезапустите VirtualBox.

Теперь это должно работать, и у меня это сработало.

Старый способ

Сначала я попробовал старый способ, главным образом потому, что существует большое количество сообщений, связанных с ним. Но я просто нигде не мог найти скрипт автозапуска Virtualbox. Я попробовал это один раз, и ничего не произошло, поэтому я полагаю, что он отсутствует (был удален) в новых версиях (по крайней мере, Ubuntu 18.04).

Вот несколько замечаний, которые я хотел сделать в отношении этого метода.

Я получаю следующую ошибку при попытке установить Virtualbox в режиме автозапуска, и попытка решить проблему заняла у меня некоторое время.

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

Другими словами, документы, которые я нашел, такие как этот:

говорит вам использовать vboxusers, но вы также можете сделать это:

(Примечание: в большинстве случаев имя вашей основной группы – это ваше имя пользователя)

и chmod даже не нужен. Конечно, это мало поможет, если вы хотите, чтобы многие пользователи могли использовать функцию автозапуска. Идея состоит в том, чтобы просто иметь возможность выполнить настройку перед выходом из системы и/или протестировать с полной перезагрузкой компьютера (в моем случае у меня есть монстр с 512 ГБ ОЗУ, двумя процессорами с общим числом потоков 64, перезагрузка занимает целую вечность, поэтому я предпочитаю избегать этого, если могу.)

Я попробую еще раз и посмотрю, сработает ли это, если я перезапущу компьютер и у меня будет правильная группа.

Тем не менее, я только что перезагрузился, и это не сработало, все еще есть что-то подозрительное в этом под 18.04, я просто не вижу службу vbox. Я вижу модуль ядра Virtualbox, но не службу. Возможно, мне нужно установить что-то еще.

Читайте также: