VirtualBoxをコマンドラインで操作し、ゲストOSをバックグラウンドで起動する

前回まででVirtualBox上に仮想サーバーを立てることができました。
CentOS6.2 on VirtualBoxでWebサーバーを構築 - sat0yuの日記

今回はちょっとしたテクニックとして、VirtualBox上のゲストOSをコマンドラインから操作する方法を紹介します。

MacOSXを前提として話を進めますが、Windowsでもファイルパスなどか若干異なる程度だったと思うので
興味のあるかたはググッてみてください。

準備

ここは読み飛ばしても構いませんが、行っておいたほうが何かと楽なので一応載せておきます

別に特別なことはしませんが、具体的にVirtualBoxへコマンドを送る際に使用するインターフェース
VBoxManageへパスを通しておきます。

と、ここまで書いて確認したら、VBoxManageは予めPATHの通った場所にインストールされるのですね。

基本コマンド

VBoxManageではたくさんの実行オプションが用意されていますが、
ゲストOSを起動する、一時停止する、パワーオフするなどといった基本操作はたった2つのコマンドで事足ります。

//指定したゲストOSが、バックグラウンドで起動
%VBoxManage startvm "ゲストOS名" --type headless

//指定したゲストOSを操作する
%VBoxManage controlvm "ゲストOS名" [ poweroff | savestate | reset | pause | resume ]

controlvmにおける第2引数には、コントロールオプションを指定します
・poweroff: 現実世界では電源プラグを抜くことに相当します(僕も知らずに多用していましたw)
通常はゲストOS側でshutdown -h nowなど使って停止させましょう

・savestate: ゲストOSの状態を保存してからゲストOSを停止します。
通常起動(startvm)で、保存した状態を復元してゲストOSを起動できます

・pause/resume: ゲストOSを(プラグラム的な意味で)一時停止/再開させます。
ゲストOS自体のサスペンドとは異なるので注意してください。(そう捉えていただいても何ら問題ないのですがw)
savestateと異なり、ゲストOSの状態を保存していないので、
pauseしたままホストOS側を終了すると厄介なことになりそうです(怖くて試していません)

その他のコマンド

//VirtualBox上に作られたゲストOSの一覧を表示します
%VBoxManage list [ vms | runningvms| etc...]

//指定したゲストOSの詳細を表示します
%VBoxManage showvminfo "ゲストOS名"

//指定したゲストOSに関するホスト側の設定を変更します
%VBoxManage modifyvm "ゲストOS名" --設定項目 設定値

listでは第2引数が必要です。よく使うのはvmsとrunningvmsぐらいでしょう。
vmsは単純に、VirtualBox上に作成されているVirtualMacine(ゲストOS)の一覧を、
runningvmsはその名のとおり、現在動作しているゲストOSの一覧を表示します。

最後のmodifyvmに関してはオフィシャルページに詳細が公開されているので、そちらを参照してください
Chapter 8. VBoxManage
僕個人としてはきちんと視覚化された方が理解しやすいので、設定だけはGUIで行っています