はじめに
先日VirtualBoxのコマンド操作する機会があったので、せっかくなので、使いそうなコマンドをまとめてみました。
コマンドの場所
VirtualBoxをコマンドで操作する場合はVBoxManageというコマンドで操作を行います。
Windowsの場合、以下にあるため、パスを切りましょう。
| パス |
|---|
| C:\Program Files\Oracle\VirtualBox |
参照系コマンド一覧
| 説明 | コマンド |
|---|---|
| 全ての仮想マシン一覧の表示 | VBoxManage list vms |
| 起動中の仮想マシン一覧の表示 | VBoxManage list runningvms |
| 仮想マシンの詳細表示 | VBoxManage showvminfo [UUID or VM名] |
| 仮想マシンのスナップショット一覧表示 | VBoxManage snapshot [UUID or VM名] list |
| 指定したスナップショットの仮想マシン詳細表示 | VBoxManage snapshot [UUID or VM名] showvminfo [スナップショット名] |
操作系コマンド一覧
| 説明 | コマンド |
|---|---|
| 仮想マシンの起動(GUIあり) | VBoxManage startvm [UUID or VM名] |
| 仮想マシンの起動(ボタン表示なし) | VBoxManage startvm [UUID or VM名] --type sdl |
| 仮想マシンの起動(GUIなし) | VBoxManage startvm [UUID or VM名] --type headless |
| 仮想マシンの起動(GUIなし変更可) | VBoxManage startvm [UUID or VM名] --type separate |
| 仮想マシンの電源オフ | VBoxManage controlvm [UUID or VM名] poweroff |
| 仮想マシンのACPIシャットダウン | VBoxManage controlvm [UUID or VM名] acpipowerbutton |
| 仮想マシンの再起動 | VBoxManage controlvm [UUID or VM名] reset |
| 仮想マシンのサスペンド | VBoxManage controlvm [UUID or VM名] savestate |
| 仮想マシンの一時停止 | VBoxManage controlvm [UUID or VM名] pause |
| 仮想マシンの再開 | VBoxManage controlvm [UUID or VM名] resume |
| スナップショットの作成 | VBoxManage snapshot [UUID or VM名] take [スナップショット名] |
| 指定したスナップショットの削除 | VBoxManage snapshot [UUID or VM名] delete [スナップショット名] |
| 指定したスナップショット名の修正 | VBoxManage snapshot [UUID or VM名] edit [スナップショット名] --name=[新しいスナップショット名] |
| 直前のスナップショットへのリストア | VBoxManage snapshot [UUID or VM名] restorecurrent |
| 指定したスナップショットへのリストア | VBoxManage snapshot [UUID or VM名] restore [スナップショット名] |
| ホストからゲストOSの操作 | VBoxManage guestcontrol [UUID or VM名] run --exe "[コマンドフルパス]" --username [ゲストOSユーザ名] --password [ゲストOSパスワード] |
※「仮想マシン起動(GUIあり)」は--type guiを指定した場合と同じ
仮想マシン起動オプションの違い
オプション無し、または--type guiの場合、GUIコンソール画面がある通常起動を行います。
--type headlessの場合、コンソール画面無しの状態で起動するので、GUIコンソール画面での操作を行わない仮想マシンを使う場合に便利です。
--type separateは起動後にGUIありかGUIなしかを変更できるタイプで、起動時はGUIコンソール画面がある状態で起動しますが、「仮想マシン」→「GUIをデタッチ」または「×」→「バックグラウンドで動作を継続」を選択することで、--type headlessと同様の状態となります。
尚、「GUIをデタッチ」または「バックグラウンドで動作を継続」の選択肢はセパレートで起動しないと表示されません。
--type sdlはウィンドウに仮想マシンの操作メニューが表示されない起動タイプとなりますが、GUIコンソールが表示されるウィンドウ以外にプロンプトが立ち上がるのと、Oracleのマニュアルにも説明が無いことから、開発用なのかと思われます。
起動タイプをセパレートで起動した際の「仮想マシンを閉じる」操作一覧。

ホストからゲストOSの操作について
使う機会は限られると思いますが、VBoxManage guestcontrolコマンドを使用することで、ホスト側からゲストOSのコマンドを実行することができます。
但し、コマンドのフルパスを記載する必要があったり、コマンドのオプション指定ができなかったりするようなので、使う場合は注意して下さい。
