No.294


【Vagrant】仮想環境がロックされて起動しないとき

upもhaltもできないときの最終手段

 Vagrantを使っているとき、ホストマシンを閉じるときに毎回ゲストマシンを終了させればいいんだけど、ノートパソコンなどで外で開発している場合はつい忘れる。
 ゲストマシンを起動させたままでもたいていは問題ないけど、たまにゲストマシンがウンともスンとも言わなくなってしまうことがある。

 下記のようなメッセージが表示されるケースではゲストマシンがお化けとなって起動したままになってしまっている。
 こうなるとvagrant upvagrant haltもできなくなってしまおう。

There was an error while executing VBoxManage, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["modifyvm", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "--natpf1", "delete", "ssh"]

Stderr: VBoxManage.exe: error: The machine 'xxxxxx_default_xxxxxxxxxxxxx_xxxxx' is already locked for a session (or being unlocked)

 そんなときはとりあえずゲストマシンを強制的に止めてしまおう。


コマンドラインから止める

 VBoxManage.exeコマンドを使用する。

VBoxManage.exe controlvm ゲストマシン名 poweroff

 パスは通すなりプログラムのディレクトリに移動するなりで。


GUI(Oracle VM VirtualBox マネージャー)から止める

  1. 止めたいゲストマシンを右クリックする。
  2. 「閉じる」メニューを選択。
  3. 「電源OFF」を選択。