Как стать автором
Обновить

Запуск VMware Player, как Windows Service

Время на прочтение 5 мин
Количество просмотров 6.8K
Автор оригинала: Dan Thomasset
У вас есть желание запускать Vmware как фоновый процесс на компьютере с Windows?
Ничего из нижеописанного не одобрено VMware. Это руководство описывает только мой способ использования VMware Player.

  1. Создание виртуальной машины
  2. Установка VMware Player
  3. Создание службы VMware Player
  4. Запуск виртуальных машин при старте Windows


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




1.1 Создание виртуальной машины



Используйте продукты VMWare для создания виртуальных машин. Я использовал Workstation версии 5.5, поскольку она создает виртуальные машины 5 поколения. Если вы используете другой продукт VMware, убедитесь, что ваш продукт будет создать виртуальную машину, которая совместима с VMWare Player.

(Примечание переводчика: Проще всего использовать VMWare Server 2.0, который совершенно бесплатен, наряду с VMWare Player. Но так же, конечно, можно создать виртуальную машину на современной версии Workstation 6.5)

(VMware Player будет использоваться для запуска виртуальной машины (так как это бесплатный продукт!).
Я также запускаю VMware ACE в качестве сервиса с использованием тех же методов, что и в случае VMware Player.

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

memsize = «2048»
MemAllowAutoScaleDown = «TRUE»


В этом случае, В. М. (виртуальная машина) будет распорядаться 2 ГБ оперативной памяти, если таковая имеется. На машинах с менее чем 2 ГБ ОЗУ, плеер будет автоматически корректировать используемый объем с учетом имеющейся оперативной памяти. Memsize 2048 это не предел. Если у вас установлено более чем 2 ГБ памяти, просто увеличьте это число.
Насколько я знаю, это недокументированная функция. Я нашел это в Vmx-файле одной виртуальной машины, поставляемой VMware.

1.2 Установка VMware Player



На машине, на которой будет выполняться сервис (далее называемой «целевой машины»), устанавливаем VMware Player. В данном примере используется версия 1.0.1. Player не может сосуществовать с другими продуктами VMware на одном и том же компьютере, так что целевая машина должна отличаться от машины, когда виртуальная машина была создана.
(Примечание переводчика: имеется в виду отдельная инсталляция плейера, если у вас не установлена Workstation, которая включает в себя плейер. Так же вы можете просто удалить с компьютера VMWare Server после создания виртуальной машины)


1.3 Создание службы VMWare Player



Найдите копии instsrv.exe и Srvany.exe из соответствующего Windows Resource Kit. Например, я использовал Windows 2003 Resource Kit. Скопируйте instsrv.exe и Srvany.exe в % SYSTEMROOT% на целевой машине.
Скопируйте файлы виртуальной машины в директорию на целевом компьютере. Не все файлы нужны, я скопировал только файлы, как показано ниже.
image

Добавьте поля в Vmx файл так, что VMware Player подавлял все «Ok»-сообщения, генерируемые пользовательским интерфейсом, и не показывал пользователю интерфейс.

server.vmx
……
hints.hideAll = «TRUE»
msg.noOk = «TRUE»
… ...


Параметр Hints.hideAll был упомянут в статье VMware — At Your Service! в июне 2004 года. Параметр Msg.noOk параметр был найден в форумах VMware.
Создайте службу VirtualServer на целевой машине с помощью instsrv.exe.
instsrv VirtualServer "%SYSTEMROOT%\System32\srvany.exe"
Добавьте ключи реестра для Srvany.exe так, чтобы она запускала vmplayer.exe с вашей виртуальной машиной. Для получения подробной объяснения создания пользовательских служб в Windows см. статью базы знаний Как создать пользовательскую службу.

VirtualServer.reg
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VirtualServer\Parameters]
«Application»="\«C:\\\\Program Files\\\\VMware\\\\VMware Player\\\\vmplayer.exe\»"
«AppParameters»="\«C:\\\\VirtualServer\\\\server.vmx\»"
«AppDirectory»="\«C:\\\\VirtualServre\\\\\»"


Чтобы использовать другой продукт Vmware, такой как ACE, измените значение ключа «Application».
Чтобы использовать другую виртуальную машину, измените значение «AppParameters».

Создайте пакетный файл запуска виртуальной машины под названием start-vm.bat.Этот сценарий сначала проверяет, установлены ли файлы виртуальной машины, и что служба не запущена. Затем он убивает все старые VMware процессы и устраняет различные файлы состояния с последнего запуска виртуальной машины. По окончанию — стартует службу виртуальной машины.

::
:: start-vm.bat
::
:: If the server isn't installed, then don't start it
if not exist C:\VirtualServer goto noServer
:: If the service is already running, then skip starting it
net start | grep -q -i «VirtualServer»
if %ERRORLEVEL% == 0 goto noServer
:: To make sure that lingering processes are dead, force kill the process
taskkill /F /IM vmplayer.exe
taskkill /F /IM vmware-vmx.exe
:: Remove *.lck, *.vmss from the grid directory
del «C:\VirtualServer\*.lck»
del «C:\VirtualServer\*.vmss»
del «C:\VirtualServer\*.vmem»
:: Start the server service
net start VirtualServer
:noServer


Создайте пакетный файл для остановки виртуальной машины под названием stop-vm.bat. Сценарий остановки виртуального сервиса убивает любые процессы VMware, связанные с запущенной виртуальной машиной.

::
:: stop-vm.bat
::
:: If the server isn't installed, then don't start it
if not exist C:\VirtualServer goto noServer
:: Start the service
net stop VirtualServer
:: Force kill the processes
taskkill /F /IM vmplayer.exe
taskkill /F /IM vmware-vmx.exe
:noServer


Важно: виртуальная машина должна быть в нормальном после жесткого закрытия. Уничтожение процесса виртуальной машины, аналогично тому, как будто вы выдернули шнур из розетки на физическом компьютере. Если состояние виртуальной машины не имеет значения, то вы можете использовать функцию nonpersistent disk. Так как содержимое диска не изменяется во время работы виртуальной машины, такое завершение процесса не сможет повлиять на состояние виртуального диска.

1.4 Запуск виртуальных машин при старте Windows



Поместите скрипт запуска в %SYSTEMROOT%\System32\GroupPolicy\Machine\Scripts\Startup. Для этого примера, скриптом запуска является файл start-vm.bat.

image

На целевой машине сделать так, чтобы start-vm.bat запускался при старте системы, добавив его в перечень автозапуска групповой политики. gpedit.msc является редактором групповых политик. Выполните команду gpedit.msc, чтобы открыть редактор групповой политики (Примечание переводчика: Меню Пуск — Выполнить)..


image

В разделе «Scripts (Startup/Shutdown)» редактора групповых политик, откройте окно Startup Properties.Нажмите кнопку «Добавить» и введите имя скрипта запуска виртуальной машины.

image

Выполните шаги 1-3 для для групповой политики Shutdown, но используйте stop-vm.bat как скрипт завершения. Добавление групповой политики Shutdown не является строго обязательным, однако может быть важно запускать stop-vm.bat, если в нем содержится больше команд, чем просто завершение процесса виртуальной машины.
Все. Пользуйтесь.
Теги:
Хабы:
+2
Комментарии 10
Комментарии Комментарии 10

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн