Блог Олега Сердюкова

Запуск виртуальных машин в VMWare Fusion 3.0 без GUI (Headless Mode)

Я заметил, что гораздо чаще использую VMWare Fusion для запуска разнообразных Unix (Ubuntu, Fedora Core, Debian), чем Windows 7. И видеть графический интерфейс этих виртуальных машин мне не нужно - я работаю с ними через SSH. Такой запуск называется “Headless Mode”, перевести на русский кроме как “безголовый режим” я не могу, поэтому я предпочитаю использование англоязычных терминов.

В Fusion 2 для режима “Headless” нужно было включить параметр fluxCapacitor, тогда в меню View появлялся пункт Headless:

$ defaults write com.vmware.fusion fluxCapacitor -bool YES

Однако в Fusion 3 он исчез:

The fluxCapacitor option was removed from Fusion 3.0 due to rearchitecting of the rendering engine; we did not have time to make sure that headless mode still worked. We realize it’s something that some people find useful. In the meantime, force quitting the UI or invoking Fusion directly should work.

Мне понравился честный ответ VMWare - “у нас не было времени, чтобы убедиться в том, что режим Headless работает”.

Первый вариант решения слегка странный. Нужно сделать “Force Quit” для приложения “VMWare Fusion”. Но я не уверен, работает ли он, желания так поступать с приложением у меня не было.

Второй вариант гораздо более правильный. Для управления виртуальными машинами из shell используется vmrun. При запуске можно указать ключ “nogui”, в итоге GUI VMWare не запустится, и мы получим “Headless Mode”.

Итак, запуск виртуальной машины (указывается полный путь к vmx-файлу и в конце команды - ключ nogui):

$ /Library/Application\ Support/VMware\ Fusion/vmrun -T fusion start \
	/Users/Shared/Virtual\ Machines.localized/Ubuntu\ 9.10\ 64-bit.vmwarevm/Ubuntu\ 9.10\ 64-bit.vmx \
	nogui

Список запущенных виртуальных машин:

$ /Library/Application\ Support/VMware\ Fusion/vmrun list
Total running VMs: 1
/Users/Shared/Virtual Machines.localized/Ubuntu 9.10 64-bit.vmwarevm/Ubuntu 9.10 64-bit.vmx

Остановка конкретной виртуальной машины (для “жёсткой” остановки вместо “soft” в конце команды нужно указать “hard”):

$ /Library/Application\ Support/VMware\ Fusion/vmrun -T fusion stop \
	/Users/Shared/Virtual\ Machines.localized/Ubuntu\ 9.10\ 64-bit.vmwarevm/Ubuntu\ 9.10\ 64-bit.vmx \
	soft

Если вы запустите GUI “VMWare Fusion”, то вы сможете подключиться к графическому интерфейсу виртуальной машины. Однако вы уже не сможете выйти из GUI “VMWare Fusion” без остановки виртуальной машины.

У команды vmrun много возможностей, рекомендую её запустить без ключей и посмотреть описание.

Comments