Maksym Prokopov personal blog
Idea is a something worth sharing

UPDATED: Запуск виртуальной машины в VMWare Fusion автоматически при старте системы (в background не работает)

21.04.2011

Reading time: 1 min.

Частым сценарием использования в Mac Server является запуск Windows экземпляра в виртуальном окружении используя VMWare Fusion.

Но бывает неудобной после перезагрузки (особенно если она связана с перезагрузкой по питанию) необходимость вручную стартовать виртуальную машину.

Можно ли настроить автоматический запуск boot time?

Оказывается, можно, и не так уж сложно.

В Mac OS есть отличный механизм автозапуска демонов и агентов boot time, а также перезапуска оных в случае чего — launchctl (читаем маны).

Для нашего случая необходимо создать следующий скрипт, назовем его /Library/Application Support/VMware Fusion/boot-vm.sh

#!/bin/bash
while [! -e /var/run/vmnet-bridge-vmnet.pid]; do  
sleep 1
done 
"/Library/Application Support/VMware Fusion/vmrun" start "/Users/admins/Documents/Virtual Machines.localized/Windows XP Professional.vmwarevm/Windows XP Professional.vmx"

где после start — путь вашей виртуальной машины.

 

для boot-vm.sh добавим аттрибуты запуска:

chmod +x boot-vm.sh

и создадим следующий файл  /Library/LaunchDaemons/com.vmware.launchd.fusion-server.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>        
<key>Label</key>        
<string>com.vmware.launchd.fusion-server</string>        <key>ProgramArguments</key>        
<array>                
<string>/Library/Application Support/VMware Fusion/boot-vm.sh</string>        </array>        
<key>RunAtLoad</key>        
<true/>        
<key>ExitTimeOut</key>        
<integer>0</integer>        
<key>LaunchOnlyOnce</key>        
<true/>        
<key>UserName</key>        
<string>admins</string>
</dict>
</plist>

теперь должно взлетать

 

проверить, что «все правильно сделал» (с) можно командой

launchctl load com.vmware.launchd.fusion-server.plist

должно взлететь.

подробнее на сайте vmware

UPDATE:

в бекграунде vmware fusion не работает, без логона у вас не получится запустить vmware 3 (это работало только для vmware 2