Вы можете воспользоваться сервисом автозапуска VirtualBox. Хороший учебник, описывающий, как это сделать, размещен на Блог "Жизнь гика-администратора".
Следующие шаги адаптированы из связанного сообщения в блоге:
Сначала вам нужно создать файл /etc/default/virtualbox и добавьте несколько переменных.
VBOXAUTOSTART_DB который содержит абсолютный путь к каталогу базы данных автозапуска и VBOXAUTOSTART_CONFIG который содержит расположение параметров конфигурации автозапуска. Файл должен выглядеть примерно так:
Теперь нам нужно создать /etc/vbox/vbox.cfg файл и добавить
# Default policy is to deny starting a VM, the other option is "allow".default_policy = deny# Create an entry for each user allowed to run autostartmyuserid = {allow = true}
Примечание: Если имя файла vbox.cfg не работает выше, попробуйте назвать его autostart.cfg.
Если вы единственный пользователь, вы можете просто добавить строку default_policy = allow к vbox.cfg файл.
Установите права доступа к каталогу для группы vboxuser и убедитесь, что пользователи могут выполнять запись в каталог, а также в sticky bit.
Добавьте каждого из пользователей в vboxusers группа.
sudo usermod -a -G vboxusers USERNAME
(заменить USERNAME с именем пользователя)
записка: Если вы изменили групповые разрешения для текущего пользователя, выйдите из системы и снова войдите в систему, чтобы обновить разрешения. (кредит @kR105)
Каждый пользователь, который хочет включить автозапуск для отдельных компьютеров, должен указать путь к каталогу базы данных автозапуска с помощью
VBoxManage setproperty autostartdbpath /etc/vbox
и включите автозапуск для отдельной виртуальной машины с
VBoxManage modifyvm <uuid|vmname> --autostart-enabled on
Это создаст myuserid.start файл в /etc/vbox каталог
Теперь перезапустите службу vboxautostart, чтобы прочитать изменения.
sudo service vboxautostart-service restart
Перезагрузите систему, и ваша виртуальная машина должна запуститься
В этой версии ключевой файл /etc/init.d/vboxautostart-сервис не был установлен.
Насколько я знаю, все VitualBox и требования были введены apt-get, поэтому я не могу сказать, почему файл 'vboxautostart-service' также не был предоставлен. Но чтобы справиться с этим, вот мое обновление к сообщению kdmurray.
1) /etc/default/virtualbox файл существовал для меня. Поэтому необходимо добавить переменные:
2) Необходимо создать /etc/vbox/автозапуск.cfg как указано в OP.
6b) Need to get a vboxautostart-service script and make it executable.
cd /etc/init.d/sudo wget http://www.virtualbox.org/browser/vbox/trunk/src/VBox/Installer/linux/vboxautostart-service.sh?format=raw -O vboxautostart-servicesudo chmod +x vboxautostart-service
6c) Предупредите контроллер rc.d, но я использовал 24 в качестве времени начала. Поставил всего 20, и он не запустился. Возможно, он запустился еще до того, как заработал virtualbox.
Вы можете использовать vboxmanage startvm "my virtual machine" --type=headless|gui|sdl (один из них). Используйте "безголовый", если это серверы, к которым вы подключаетесь другими способами, кроме использования графического интерфейса.
Чтобы действительно запустить эти команды в нужное время во время загрузки, вам нужно прочитать о Upstart.
После многих несчастных часов, когда я пытался провести процедуры в от kdmurray выше, чтобы работать, но безуспешно, я в конце концов нашел метод, который работал просто.
Сначала мой Linux-хост (Mint 17) был настроен во время загрузки для автоматического входа в мою основную учетную запись.
Во-вторых, я использовал возможности графического интерфейса VirtualBox (v4.3.12), чтобы создать ярлык для каждой виртуальной машины на рабочем столе. {щелкните правой кнопкой мыши виртуальную машину в левом столбце и выберите "Создать ярлык на рабочем столе"}
>>>Далее: Я уже обнаружил, что вызов меню-Центр управления - Приложения для запуска - Добавить и добавление ярлыков на рабочем столе дали файлы, которые не работали, я заметил из другого ответа на этой странице, что расположение startups - / home / USERNAME /.config / автозапуск, поэтому я щелкнул правой кнопкой мыши на каждом из ярлыков виртуальной машины на рабочем столе, а затем вставил их в эту папку, перезаписав более ранние файлы дерьма. Теперь они разработали "красивые" иконки VirtualBox.
И, конечно же, при перезагрузке главного компьютера 3 виртуальные машины запустились автоматически.
:-)
Билл Уильямс
PS: увы, мне все еще чего-то не хватает, потому что часто виртуальные машины не запускаются при загрузке, вместо этого они генерируют диалоговое окно с ошибкой, в котором говорится, что они заблокированы, даже если я сказал им завершить работу до повторной загрузки хоста.
В дополнение к хорошему описанию vboxautostart-service, приведенному выше, вы можете сделать
VBoxManage modifyvm server --autostop-type savestate
чтобы автоматически остановить гостя при завершении работы. Для Ubuntu 14.04 мне пришлось добавить сон 30 в раздел vboxautostart-service stop, чтобы он ждал, пока гость не будет полностью сохранен.
Я нашел более простой способ в Ubuntu 16.04 под управлением VBox 5.1.34.
Находясь в VBox, щелкните правой кнопкой мыши на запущенной или бездействующей виртуальной машине в списке, выберите "Создать ярлык на рабочем столе". Как только вы увидите значок на своем рабочем столе, откройте его с помощью любого инструмента, который позволит вам увидеть созданную базовую команду VBox (в моей системе я щелкаю правой кнопкой мыши и выбираю "свойства"). Скопируйте это в буфер обмена.
Откройте программу для обновления "startup applications" и создайте новое приложение, которое запускается во время загрузки, вставив команду, которую вы скопировали из ссылки на рабочий стол, созданной VirtualBox.
Запуск Virtual Box в пользовательском пространстве может помочь избежать нежелательных побочных эффектов их запуска во время загрузки (например, виртуальная машина запускается от имени root, время загрузки невероятно увеличивается, ...).
Вот как я запускаю свой Centos (имя моей виртуальной машины), когда моя хост-машина перезагружается. Я использую crontab для этой работы. Вот моя запись в crontab: