仮想マシンを使っていてよくあるのが、仮想マシンをシャットダウンさせずにPCをシャットダウンさせてしまうというミス。
特に仮想マシンをヘッドレスモードなどで動作させていると、仮想マシンが動いていることをつい忘れてしまって電源を落としてしまうということもよくあったりします。
VMWareでは、ホストOS側を強制シャットダウンしない限り、自動で一度ホストOSのシャットダウンをブロックして仮想マシンをサスペンド状態にしてからホストOSのシャットダウンを再開させるようになっています。
ところがVirtualboxにはこの機能がなく、仮想マシンが動いたままホストOSのシャットダウンをかけてしまうと、強制的に仮想マシンが停止されられ、”中断”というステータスになってしまいます。
気を付ければいい話なのですが、そうはいっても急いでたりなどでやらかしてしまうことはどうしてもあるので、やっぱり何かしら対策をしておきたいなぁとは思っていました。
調べたところ、VBoxHeadlessTrayというアプリをインストールすることで、シャットダウン時に自動で状態の保存(サスペンド)を行ってくれるようです。
インストール後、起動するとまずどのVirtualBoxのインスタンスを制御するか聞かれるので、自動シャットダウンされたくないインタンスを選択します。
インスタンスを指定すると、タスクバーの通知領域にVBoxHeadlessTrayのアイコンが表示されます。
このアイコンを右クリックすると、仮想マシンの操作に関するメニューが表示されます。
制御対象にした仮想マシンの電源周りはここから一括で管理できます。
なお、ホストOSの起動時とシャットダウン時も自動で電源のON/OFFをしてくれるため、万が一仮想マシンを起動したままホストOSをシャットダウンしてしまっても、自動でゲストOSもシャットダウンしてくれます。
ただし、まれにゲストOSのシャットダウンが完了する前に ホストOS側で 強制終了させられる可能性があるので、なるべくホストOSシャットダウンを行う前にゲストOSを手動でシャットダウンするようにした方が安全です。
自動シャットダウン周りなどは同じ仮想マシンソフトのVMWareと比較するとちょっと貧弱な印象のあるVirtualBoxですが、こういった外部ツールを使用すれば、より便利に利用できるようになりそうですね。