VMware Fusionで扱うVMの中には、普段はsshでアクセスするだけで、別にGUI画面が必要ないものもあります。その場合、今まではウィンドウを最小化するか、あるいは下図のようにウィンドウを閉じるときの選択肢で【バックグラウンドで実行】ボタンをクリックして隠すなどして対処していました。
ただ、起動のたびにいちいち隠したり、バックグラウンドに回したりするのはどうにも面倒だな、はじめからバックグラウンドで起動した状態にしたいなと常々思っていたので(重い腰を上げて)調べたところ、どうも「ヘッドレスモード(headless mode)」なる起動の仕方があることが分かりました。
この記事は、VMware Fusionでヘッドレスモードで起動する方法について書きます。
vmrunコマンド
VMware Fusion.appは、バンドル内のContents/Libraryフォルダにたくさんのコマンドを持っています。アプリは内部でこれらのコマンドを実行し、VMの起動・終了を実現したり、たとえばvmnet*のネットワーク環境なども提供しています。
これらのうち、VMの起動・終了・サスペンドにはじまり、自動ログインや各種設定などの管理全般を担当しているのが、「vmrun」というコマンドです。
% /Applications/VMware\ Fusion.app/Contents/Library/vmrun
vmrun version 1.14.0 build-2314774
Usage: vmrun [AUTHENTICATION-FLAGS] COMMAND [PARAMETERS]
:
このコマンドにVMの「.vmxファイル1」と処理内容を示すオプションを指定して実行することで、VMを操作できます。たくさんのオプションがあり、さらにはアプリのGUIからでは触れない細かな指定もできるようになっています。
今回の目的であるヘッドレスモードでの起動は、このvmrunコマンドを使って実現します。
ちなみに毎回アプリフォルダを掘っていくのは面倒なので、私は下のようにパスの通った場所(/usr/local/bin)にシンボリックリンクを作っておいて楽をしています。
% ln -s /Applications/VMware\ Fusion.app/Contents/Library/vmrun /usr/local/bin/vmrun
ヘッドレスモードでの起動
VMをvmrunコマンドを使って起動するには、コマンドにstartオプションを付けて実行します。そして、ヘッドレスモードで起動するには、startにnoguiを追加して実行します。
% vmrun -T fusion start .../yourVM.vmwarevm/yourVM.vmx nogui
最初の「-T fusion」は「AUTHENTICATION-FLAGS」に該当するオプションで、-Tはホストの種別がVMware Fusion(fusion)かVMware Workstation(ws)かを指定します。確認していませんが、Windowsの場合はwsを指定することになるのでしょう。
次に、何のコマンドを実行するかを指定します。起動の場合は「start」ですが、他にもたくさんのオプションが用意されています。
VMの**.vmxファイルを続けて指定したら、最後にstartの追加オプションを指定するところで、GUI無しを表す「nogui**」を指定します。これにより、はじめからバックグラウンドの状態で、ウィンドウを出すことなくVMを起動できます。
startと.vmxだけ書いてオプション無指定の場合は、デフォルト値であるguiが選ばれます。
ウィンドウを表示させたいときはDockや「仮想マシンのライブラリ」から当該VMを選べば表示されるので、何か問題があったときでも心配は要りません。
OS起動と同時に起動させたければ、ログイン時に実行するスクリプトとして準備しておけばよいでしょう。
起動方法は以上です。参考までに、サスペンドとシャットダウンについても見ておきましょう。
サスペンド
サスペンドはvmrunコマンドにsuspendオプションを付けて実行します。
% vmrun -T fusion suspend .../yourVM.vmwarevm/yourVM.vmx [soft|hard]
選択できるオプションにはsoftとhardがあり、アプリでウィンドウを閉じるときに出てくる「サスペンド」は、hardに相当します。
デフォルトはhardです。
シャットダウン
シャットダウンはvmrunコマンドにstopオプションを付けて実行します。
% vmrun -T fusion stop .../yourVM.vmwarevm/yourVM.vmx [soft|hard]
こちらもsoftとhardの2つがあり、softがソフトウェアによる「シャットダウン」、hardが「パワーオフ」に相当します。デフォルトはhardです。
その他
-
vmrunコマンドには他にも役立つオプションがたくさんあります。vmrunコマンドを引数無しで起動するとヘルプが表示され、各種オプションの使い方が分かります。 -
vmrunコマンドで起動したVMは独立したプロセスで動いているため、仮にVMware Fusion.appを終了させてもそのまま動き続けます。vmrunコマンドの stop/suspendを使って、個別に終了する必要があります。
vmrunが使えると何かと細かな制御ができるようになるので、この機会にぜひ使い方をマスターしてみてはいかがでしょうか。
-
Finderで辿れる「.vmwarevmファイル」の中にあります。 ↩
