Я не могу заставить мою виртуальную машину работать при запуске.
Я попробовал "запуск приложений" и update-rc.d без удачи.
sudo update-rc.d startvms defaults 99 10
Это создало все соответствующие символические ссылки для разных уровней выполнения, но виртуальная машина все еще не запускается.
Вот мой скрипт startvms:
#!/bin/bash
### BEGIN INIT INFO
# Provides: startvms
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start my VMs at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
case "$1" in
start)
echo "Starting"
nohup VBoxHeadless --startvm "UbuntuServer" &
;;
stop)
echo "Stopping $DESC"
VBoxManage controlvm "UbuntuServer" poweroff
;;
restart|force-reload)
echo "Restarting $DESC"
VBoxManage controlvm "UbuntuServer" poweroff
nohup VBoxHeadless --startvm "UbuntuServer" &
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
Что я делаю неправильно?
virtualbox
startup
capdragon
источник
источник
VBoxManage startvm --type headless "UbuntuServer"
вместоVBoxHeadless
команды?su -c 'VBoxHeadless --startvm <MACHINE>'
.Ответы:
ЭТО является то , что в конце концов сработало!
1) Создайте файл сценария запуска
в /etc/init.d -
sudo nano /etc/init.d/StartVM
.Скопируйте Вставьте следующее в файл и замените «Имя моей виртуальной машины» на имя вашего виртуального компьютера:
2) Дайте скрипту разрешение на выполнение
с
sudo chmod +x /etc/init.d/StartVM
.3) Скажите скрипт для запуска при запуске.
скажите, чтобы скрипт был первым, кто выключился, и последним, чтобы запустился.
sudo update-rc.d StartVM defaults 99 01
источник
VBoxManage startvm --type headless
будет ли лучше?К вашему сведению, это работает на Opensuse без nohup.
источник
Это работает нормально с сервером Ubuntu 12.04 и VirtualBox 4.2.20.
И
и
как указано в предыдущем ответе.
источник
Поскольку вы упоминаете, что VBoxHeadless работает нормально, если вы набираете его из командной строки терминала, но не запускает виртуальную машину при запуске из сценария инициализации, я предполагаю, что он ищет некоторую переменную среды, которая определяется при запуске оболочки в вашем терминале, но не определено в среде сценария инициализации (которая в основном пуста, за исключением параметров, указанных в командной строке ядра).
Можете ли вы попытаться заменить вызовы VBoxHeadless в скрипте этим?
Здесь «имя пользователя» и путь к домашнему каталогу должны быть изменены, чтобы соответствовать именам пользователя, которого вы используете для запуска ВМ.
Если это работает, вы можете захотеть использовать su -l для запуска VBoxHeadless вместо этого хака env .
источник
su -l
- это хороший момент!В последних версиях Virtualbox (начиная с 4.2.0) вам не нужно запускать собственный сценарий для автоматического запуска ВМ, но для этого требуется некоторая настройка. См. Раздел 9.24 Руководства Virtualbox « Запуск виртуальных машин во время загрузки системы ».
К сожалению, руководство содержит только общие инструкции и не обновлялось годами. я нашел этот пост на форумах virtualbox с некоторыми дополнительными подробностями.
Вы можете просто вставить строку в rc.local, чтобы запустить свой сервер, но если вы хотите сделать это «официальным» способом, читайте дальше ..
Добавьте эти строки в / etc / default / virtualbox:
Отредактируйте /etc/vbox/vboxautostart.cfg (этот пример запрещает автозапуск для всех пользователей, кроме пользователя "Bob":
Добавьте группу vboxusers в / etc / vbox и закрепите:
Добавьте всех пользователей, которые будут использовать virtualbox, в группу «vboxusers», например:
Каждый пользователь, который хочет включить автозапуск для отдельных машин, должен указать путь к каталогу базы данных автозапуска с помощью:
Затем пользователи могут настроить виртуальные машины на автоматический запуск и настроить, как они будут останавливаться (например, savestate, acpishutdown) с помощью:
Вышесказанное работало для меня с Virtualbox 5, установленным из репозитория virtualbox.org.
источник
Можно также захотеть установить порт непосредственно при использовании vrdp .. комментарий к верхнему ответу, который хорошо разделяет использование разных скриптов для разных vms
источник
Вау ... Я вижу все эти решения, которые кажутся немного сложными, но это мой третий ноутбук, на котором я просто написал:
VBoxHeadless -s "Ubuntu Server"
в моем файле rc.local в каталоге / etc /, и это работало довольно хорошо. Запускает виртуальную машину автоматически при перезагрузке.
источник