Как настроить виртуальную машину Virtualbox для автоматического запуска после перезагрузки Windows-10?

37

В 2013 году я разыскал, как автоматически запускать / выключать виртуальную машину Virtualbox, когда хостом является Linux. Процесс был официально задокументирован и потребовал нескольких шагов.

Сейчас меня интересует, как настроить виртуальную машину Virtualbox на автоматический запуск после перезагрузки Windows-10?

Есть ли официально документированный процесс? Если нет, то каковы проверенные решения некоторых людей?

Моя наивная попытка была похожа на:

  • сделано: настройка Windows для автоматического входа при перезагрузке

  • TODO: создать пакетный скрипт с: sleep 120 && vboxmanage startvm my_vm_name

  • TODO: Поместите пакетный скрипт в директорию запуска моего пользователя. (Я не видел никакой директории запуска в Windows 10, хотя ...)

Тревор Бойд Смит
источник
я не был уверен в использовании меню запуска ... потому что оно очень windows-9x-ish (может быть, оно старше). В Linux я использовал sysvinit / systemd, но я просто не знаком с Windows (может быть, планировщик задач или что-то подобное).
Тревор Бойд Смит
Может быть полезно, если вы добавите ссылку The process was officially documentedна Linux ;-)
Philippe Gachoud
@PhilippeGachoud, согласно вашему запросу, я отредактировал вопрос и добавил ссылку на документацию
Тревор Бойд Смит
Спасибо! Я нашел это более адекватным, потому что менее чувствительным к изменениям конфигурации управления пакетами, как это, кажется, имеет место, каков ваш опыт с этим? medium.com/@bharatman/…
Филипп Гачу

Ответы:

35

Каталог запуска все еще существует, хотя и в хорошо спрятанном месте ...

Чтобы получить к нему доступ, откройте окно «Выполнить» (Win + R) и введите

shell:startup

Минимизируйте это сейчас.

Откройте VirtualBox и щелкните правой кнопкой мыши виртуальную машину, которую вы хотите запустить автоматически, выберите опцию, чтобы создать ярлык на рабочем столе, и закройте VirtualBox.

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

Sam3000
источник
4
shell: запуск происходит при входе в систему, а не при загрузке системы, правильно? Как это сделать при загрузке системы?
Алексей
1
Вам нужно запустить его как сервис
AKi
1
Не обязательно. Вы всегда можете настроить autologon, открыть cmd и набрать control userpasswords2. Вы найдете свой путь через все остальное.
Эдуардо
13

Вы можете запустить виртуальную машину без помощи головы, не прибегая к стороннему VBoxVmService. Просто создайте ярлык <VirtualBoxDirectory\VBoxManage.exe> startvm "vmname" --type headlessи поместите его в папку автозагрузки.

Из руководства VirtualBox .

Чад
источник
5
Разве это не имеет недостатка в том, что требуется вход в систему вместо того, чтобы просто запускаться при загрузке?
ХорусКол
Конечно. Служба по-прежнему необходима, если вы хотите запустить что-либо без входа в систему.
rustyx
2
Для этого используйте запланированное задание вместо ярлыка в папке автозагрузки.
Бруно Фингер
11

Попробуйте VBoxVmService

Обязательно прочитайте Howto.txt и отредактируйте VBoxVmService.ini

Aki
источник
1
Спасибо большое! это выглядит очень многообещающе. В Windows отсутствие интеграции Virtualbox с запуском / выключением системы всегда было большим недостатком, когда вы хотели сравнить windows-virtualbox с linux-virtualbox (даже если интеграция с linux virtualbox только sysvinit ... и IMO не очень надежна ( завершение работы виртуальных машин не ожидает ее выключения, прежде чем система выдаст команду SIGKILL, а затем завершит работу системы)).
Тревор Бойд Смит
1
Я пробовал это около года назад. Это решение требует, чтобы вы обновляли virtualbox в режиме lockstep с помощью кода оболочки, который выполняет служба Windows. И поэтому вы должны быть осторожны. Также обновление Windows, я думаю, сломало эту функциональность для меня. И в итоге я удалил этот vbox-сервисный код.
Тревор Бойд Смит
Я посмотрел на этот проект. Огромное количество орфографических ошибок заставляет меня беспокоиться о подобных проблемах в коде. Штольня + канарейки.
user2066657
@ user2066657 ну, вы можете прочитать мои комментарии и увидеть, что я попробовал, и это немного подействовало, а затем сломалось. Ваши опасения по поводу орфографических ошибок, указывающих на качество кода, вероятно, хорошо обоснованы. Я все еще не вернусь к этому сегодня.
Тревор Бойд Смит
7

Хотя иметь Службу приятно, вы можете сделать это с помощью запланированного задания. Возьмите загрузку системы в качестве триггера, отметьте опцию для запуска задачи без входа в систему и установите действие в <VirtualBoxDirectory\VBoxManage.exe> startvm "vmname" --type headless. Обязательно снимите флажок с непонятного параметра по умолчанию «убить задачу, если она выполняется более 3 дней». Srsly, MS, что вы думаете, что ни один компьютер с Windows не сможет так долго работать без перезагрузки?

Есть предостережение: если виртуальная машина запускается при загрузке таким образом, вы увидите ее в VirtualBox Manager как «выключено», поэтому нет кнопки для отображения дисплея виртуальной машины. Там есть только кнопка «Пуск», и вы, вероятно, испортите ситуацию, когда попытаетесь запустить ее дважды.

Вы можете определить порт удаленного дисплея, чтобы получить доступ к консоли виртуальной машины через RDC (mstsc.exe) без VirtualBox Manager, но вы все равно должны помнить, чтобы не верить информации об отключенном питании. Я не знаю, работает ли это лучше с реальным сервисом.

gonesoft
источник
1
«Служба - это хорошо». К сожалению, служба VirtualBox не работает каждый раз, когда происходит незначительное обновление виртуальной коробки. в итоге я удалил службу и сейчас моя виртуальная машина больше не запускается при загрузке.
Тревор Бойд Смит
re "[виртуальная машина отображается как] выключенная [в VirtualBox Manager]" я считаю, что это вызвано тем, как вы запускаете виртуальную машину. я подозреваю, что вы запускаете виртуальную машину как пользователь root. если бы вы попытались запустить виртуальную машину с помощью «runas» вашего пользователя ... ваш менеджер VirtualBox мог бы работать.
Тревор Бойд Смит
1
теперь, когда я думаю об этом ... служба VirtualBox ... ТАКЖЕ обнаруживается как "выключенная", когда вы запускаете ее через службу.
Тревор Бойд Смит
1
Это выглядит очень многообещающе, но я не могу заставить его работать ... Я создал задание с помощью двух команд - для запуска моих "основных" виртуальных машин. Я вижу это в планировщике. Я могу щелкнуть по нему и выбрать «Выполнить» - состояние меняется с «Готово» на «Работает», но виртуальные машины не запускаются. И при этом они не запускаются при загрузке ... Должно быть что-то еще к этому ...
Михаил Т.
ЭТО РАБОТАЕТ , проверено на Windows 10 + Virtualbox 6.0.2. Рецепт: Windows-ключ, введите SCHED и планировщик задач запуска, Создать базовую задачу, Триггер: Когда компьютер запускается, Действие: Запустите программу, Программа (перейдите к VBoxManage.exe), аргументы: startvm "vmname" --type headless, установите флажок «Открыть диалоговое окно свойств для этой задачи» и, завершите, установите флажок « Выполнить» независимо от того, вошел ли пользователь в систему или нет , возможно, удалите «Условия» / «Пуск», только если компьютер подключен к сети переменного тока, и «Параметры» / «Остановите задачу, если она выполняется дольше, чем» (хотя на самом деле это не имеет значения, поскольку запуск происходит быстро).
fgrieu
2

Как ранее заявили chad и gonesoft, вы можете использовать VboxManage.exe для запуска виртуальной машины при запуске, однако, если вы не укажете «--type headless», она фактически будет отображаться в VirtualBox Manager как запущенная и т. Д., Как если бы вы начали это нормально, безголовый - это то, что делает его скрытым - не то, что вы, вероятно, захотите сделать во всех случаях

Публикация в качестве ответа, так как у меня недостаточно репутации, чтобы написать комментарий к предыдущим ответам

Swizzy
источник
2

Попробуйте VBoxHeadlessTray .
Он действительно прост в использовании, который автоматически восстанавливает состояние виртуальной машины при загрузке Windows и сохраняет состояние при завершении работы или перезагрузке Windows. Самое удивительное, что вы можете использовать VBoxHeadlessTray для настройки каждой из ваших виртуальных машин.

chengxuncc
источник
это выглядит потрясающе. Я должен буду попробовать это, когда у меня будет время. Спасибо.
Тревор Бойд Смит