VMware Fusion 5 + OS X 10.8.x 環境で、ターミナルから仮想マシンの起動、停止を行えるようにする

仮想マシンをもっと快適に扱うための Tips。

仮想マシンの起動・停止のために、いちいち VMware Fusion を起動し、仮想マシンを選択するという操作を、毎回、毎回、繰り返したくない人向け。

下記の設定を行なっておくと、ターミナルから1コマンドで、任意の仮想マシンを起動・停止が行える。仮想マシン側に SSH 接続の設定を事前に行なっておけば、ターミナルから離れることなく、仮想マシンの起動→接続→切断→停止まで行えるようになって、快適なハッキングライフを楽しめる。


使用する環境について

VMware Fusion の vmrun について

vmrun は私の環境では、下記の場所にあった。

/Applications/VMware Fusion.app/Contents/Library/vmrun


vmrun とは VMware Fusion に対する操作を、コマンドラインから行えるようにしたユーティリティ。
今回の記事で紹介する vmrun の機能はほんの一部なので、より詳細を調べたい方は、
下記のコマンドを実行することで、ヘルプを表示することが出来る。

$ /Applications/VMware\ Fusion.app/Contents/Library/vmrun


vmrun を使いやすくするために、vmrun の場所に PATH を通しておくのをオススメする。
私は下記のように設定している。

$ vi .bashrc

PATH=$PATH:/Applications/VMware\ Fusion.app/Contents/Library # ← ファイル内に追加

事前準備:VMware Tools をインストールする

vmrun から扱いやすくするために、ゲストOS(今回は CentOS 6.4)に「VMware Tools」をインストールしておく。私は下記の記事を参考に作業を行った。VMware Fusion 5 + OS X 10.8.x でも問題なく設定できた。

仮想マシンを起動 → シャットダウンしてみる

仮想マシンに関しては、皆さんがご自身で用意したものを使うと思う。今回の例では、下記の CentOS 仮想マシンを用意したので、これを使う想定で話を進める。ファイルパスとしては vmwarevm ファイル内の vmx ファイルを使う。

/Users/komiya/Documents/Virtual\ Machines.localized/CentOS.vmwarevm/CentOS.vmx

下記のコマンドを実行すると、現在起動中の仮想マシンを表示できます。

$ vmrun -T fusion list

> Total running VMs: 0 # ← 起動マシンがなければ、0 と表示される


ではさっそく、仮想マシンを起動してみる。

$ vmrun -T fusion start /Users/komiya/Documents/Virtual\ Machines.localized/CentOS.vmwarevm/CentOS.vmx

VMware Fusion が自動で立ち上がり、任意の仮想マシンが起動するはずだ。
問題なければ、次は仮想マシンをシャットダウンしてみる。このシャットダウンは「shutdonw -h now」を実行した時のような、安全なシャットダウンを行う。このコマンドは「VMware Tools」が事前にインストールされていないと動かないので注意。

仮想マシンを停止

$ vmrun -T fusion stop /Users/komiya/Documents/Virtual\ Machines.localized/CentOS.vmwarevm/CentOS.vmx soft

以上



仮想マシンを起動 → シャットダウンしてみる(NO-GUI モードで起動する)

vmrun に「nogui」というオプションをつけると、VMware Fusion の画面が表示されない状態で、任意の仮想マシンを立ち上げることが出来る。SSH による接続を前提にしているならば、「nogui」で起動したほうが楽チンである。

「nogui」での起動は、次のようにできる。

$ vmrun -T fusion start /Users/komiya/Documents/Virtual\ Machines.localized/CentOS.vmwarevm/CentOS.vmx nogui


「nogui」モードは、一見正しく起動できているのかわからない。
下記のコマンドで、起動状態を確認できる。

$ vmrun -T fusion list

> Total running VMs: 1 # ← 起動していることが確認できる
> /Users/komiya/Documents/Virtual Machines.localized/CentOS.vmwarevm/CentOS.vmx

「nogui」モードの仮想マシンの停止は、従来の方法と同じだ。

$ vmrun -T fusion stop /Users/komiya/Documents/Virtual\ Machines.localized/CentOS.vmwarevm/CentOS.vmx soft

以上



最後に

長いコマンドを覚えたくないという人は、エイリアスを貼ってみてもいいかもしれない。私はよく起動する仮想マシンが固定されているので、例えば次のようなエイリアスを作っている。

alias vmlist='vmrun -T fusion list'
alias vmstart_centos='vmrun -T fusion start /Users/komiya/Documents/Virtual\ Machines.localized/CentOS.vmwarevm/CentOS.vmx nogui'
alias vmstop_centos='vmrun -T fusion stop /Users/komiya/Documents/Virtual\ Machines.localized/CentOS.vmwarevm/CentOS.vmx soft'