Как автоматически запускать машины VirtualBox как службу

Опубликовано: 18 Апреля, 2023
Как автоматически запускать машины VirtualBox как службу

Возможно, вы знакомы с VirtualBox, бесплатным программным пакетом с открытым исходным кодом для запуска виртуальных ПК на хост-компьютере. Он был разработан Oracle и может быть установлен на хостах Windows, Macintosh, Linux и Solaris.

Поддерживаемые гостевые операционные системы, работающие практически «из коробки», включают DOS, почти все версии Windows, начиная с NT 4.0, основные версии ядра Linux, Solaris и OpenSolaris, OS/2 и OpenBSD. Другие, наверное, тоже работают. Настройка VirtualBox 5.0 — довольно простой процесс, и он практически не изменился по сравнению с более ранними версиями, которые были рассмотрены здесь ранее.

Однако в этом превосходном продукте гипервизора остается одно вопиющее упущение. Чтобы определить это, просто проверьте главу 9, раздел 24 его онлайн-руководства:

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

Правильно, нет возможности автоматически запускать ваши виртуальные машины на хосте Windows. Сервер перезагружается? К сожалению, ваши виртуальные машины по-прежнему отключены. Лучше войдите в систему и загрузите их все снова.

К счастью, есть несколько сторонних решений этой проблемы. В этой статье будет рассказано о VBoxVmService, надежном помощнике, который я использовал последние пару лет в реальной среде сервера Windows.

Настройте свои виртуальные машины

Прежде чем что-либо делать с VBoxVmService, настройте все свои виртуальные машины так, как вам нравится. В руководстве Oracle VirtualBox есть довольно хорошие инструкции (хотя и мало скриншотов). Изменение любой одной виртуальной машины после запуска VBoxVmService — небольшая проблема, поэтому выбирайте настройки, которые не нужно будет часто менять.

Все готово? Тогда ладно.

Скачайте и установите VBoxVmService

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

В основном нас интересует INI-файл, так как все наши настройки хранятся в нем. Откройте его в Блокноте или другом текстовом редакторе, чтобы увидеть исходное состояние.


[Настройки]
VBOX_USER_HOME=C:ПользователиДжон.VirtualBox
RunWebService=нет
ПаузаШутдаун=5000

[Vm0]
VmName=убунту
ShutdownMethod=сохранить
Автозапуск=да

[Вм1]
VmName=winxp
ShutdownMethod=сохранить
Автозапуск=нет

Настроить INI

Переменная VBOX_USER_HOME, вероятно, в порядке, если вы установили VirtualBox и VBoxVmService с их настройками по умолчанию. Путь совпадает (обязательно) с папкой машины по умолчанию, установленной в настройках Oracle VM VirtualBox Manager.

RunWebService определяет, следует ли автоматически запускать веб-службу HTTP VirtualBox, поэтому измените это значение на «да» только в том случае, если вам это нужно. PauseShutdown дает дополнительное время в миллисекундах для корректного завершения работы виртуальных машин, если хост-компьютер выключается.

  • На остальное придется обратить внимание. [Vm0] и [Vm1] показывают примерные значения для:
  • имя каждой из ваших виртуальных машин (VmName)
  • как виртуальные машины должны реагировать на команду остановиться (ShutdownMethod, либо «savestate» для быстрого моментального снимка сеанса, либо «acpipowerbutton» для полного выключения) и
    загружаться или нет при запуске VBoxVmService (AutoStart)

Первое, что нужно сделать, это заменить VmName на имя вашей виртуальной машины. Если у вас есть только один, удалите все, начиная с [Vm1]. Если у вас их больше двух, добавьте больше разделов в том же формате, начиная с [Vm2], затем [Vm3] и т. д.

В зависимости от ваших прав пользователя вам также может понадобиться добавить две строки, предоставляющие сервису доступ к каталогу VBOX_USER_HOME. Поместите их в раздел [Настройки]:


RunAsUser=.имя_пользователя
UserPassword=ваш пароль

Не волнуйтесь, этот пароль в открытом виде присутствует очень недолго. Вы можете удалить эти строки сразу после установки сервиса.

Сохраните VBoxVmService.ini и откройте командную строку от имени администратора. Выполните следующую команду, которая установит службу:

C:vmsVmServiceControl.exe -i

Вы можете получить сообщение об ошибке:

Если это так, просто удалите и переустановите службу:

C:vmsVmServiceControl.exe -u
C:vmsVmServiceControl.exe -i

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

Перезагрузка тоже не плохая идея.

Управление сервисом VirtualBox

Вернувшись в папку C:vms, откройте VmServiceTray.exe, чтобы рядом с часами появился удобный маленький значок, который позволяет запускать и останавливать VBoxVmService, а также любые отдельные виртуальные машины. Создайте ярлык и поместите его в папку «Автозагрузка», чтобы он всегда был под рукой при загрузке.

Вы должны иметь возможность открыть графический интерфейс VirtualBox, когда служба и виртуальные машины все еще работают, но так было не всегда. Версии 4.2 и 4.3 графического интерфейса не открывались при запуске VBoxVmService, поэтому для внесения каких-либо изменений или добавления новых виртуальных машин служба (и, следовательно, все работающие виртуальные машины) должна была быть остановлена. Если эта проблема возникает у вас в версии 5, выполните следующие действия, прежде чем открывать графический интерфейс:

  1. Щелкните правой кнопкой мыши значок на панели задач.
  2. Перейдите к каждой из перечисленных виртуальных машин и выберите «Остановить».
  3. После остановки каждой ВМ выберите «Остановить VBoxVmService».
  4. Подождите около 10 секунд и откройте графический интерфейс Oracle VM VirtualBox.

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

Доступ к вашим виртуальным машинам

После запуска через VBoxVmService ваши виртуальные машины можно использовать как любую другую удаленную машину — через удаленный рабочий стол, программное обеспечение VNC, LogMeIn, TeamViewer или любое другое решение, которое вы предпочитаете.

Несмотря на то, что Oracle VM VirtualBox Manager можно открыть, пока ваши виртуальные машины работают под управлением VBoxVmService, их состояние не будет корректно отражаться в этом графическом интерфейсе. Попробуйте запустить тот, который говорит, что он выключен, и вы получите неприятное окно с ошибкой, содержащее несколько сбоев. Вы можете остановить соответствующую виртуальную машину с помощью значка на панели задач, если для параметра «ShutdownMethod» в вашем файле VBoxVmService.ini установлено значение «acpipowerbutton»; однако, если это «сохранение состояния», вам лучше подключиться к виртуальной машине и правильно ее закрыть.

Советы и хаки, связанные с более ранними версиями, можно найти на вики VBoxVmService. Удачной виртуализации и расскажите нам о своем опыте!