ネットサービスとかGoogleとか豆知識とか。

Index > プログラミング > Linux > vagrant sandbox off を途中で止めたらVMを起動できなくなって困った話
プログラミング
2013年04月21日 14:32

vagrant sandbox off を途中で止めたらVMを起動できなくなって困った話

  • このエントリーをはてなブックマークに追加
  • ... PV
スポンサード リンク

ちょっと前から開発用環境に vagrant を使うようになったのですが、その vagrant というか VirtualBox で先日問題が発生して、かなりハマってしまいました。

具体的には、sandbox を off にしようとコマンドを打ったらやたらと時間がかかるので、一旦 vagrant sandbox off の処理を Ctrl-C で停止させたのです。すると、仮想マシンがエラー状態になっておかしなことに。。

vagrant sandbox status を見ると on のまま、しかし vagrant sandbox off をしようとすると「VBoxManage: error: Details: code VBOX_E_INVALID_OBJECT_STATE ...」などのエラーが出て off にできません。それだけでなく、vagrant ssh でログインすることもできない状態に。

VirtualBox のアプリケーションを起動して仮想マシンの状態を確認すると、「スナップショットを削除中」という状態のまま止まってしまっていました。

virtualbox-disk-error-01.jpg

↑ こういう状態のままうんともすんとも言わない。

よく分からないので一度 Mac を再起動し、再度 VirtualBox を起動すると「仮想マシンが正常ではありません」みたいなメッセージが出て、仮想メディアマネージャーというものが起動。

virtualbox-disk-error-02.jpg

↑ 仮想メディアマネージャー

この仮想メディアマネージャーを確認すると該当VMのスナップショットにエラーマークが出ていたので、「解放」と「除去」を実行。そうするとエラーが出ていたスナップショットを除去することには成功しました。

これで大丈夫かなーと思って仮想マシンを起動しようとしたのですが、今度は「FATAL: Could not read from the boot medium! System halted.」というエラーが出て起動できません。

virtualbox-disk-error-04.jpg

が、これはググると解決。

» Fix VirtualBox Fatal Could not read from Boot Medium! System Halted start-up boot Error - YouTube

どうやらストレージから仮想ドライブが外れてしまっていたのが原因だったようです。なので「設定」-「ストレージ」にある「コントローラー: SATA Controller」に仮想ドライブをセットしてみました。

virtualbox-disk-error-03.jpg

↑ ここからハードディスクを追加する。

これでいけるだろうと vagrant up したのですが、まだ解決しません。なぜか仮想マシンの状態が最初の「VBOX_E_INVALID_OBJECT_STATE」のままで起動してくれない。。

またさらにググってみるとどうやらバージョンの古い VirtualBox のせいといった情報があって、アップデートを確認すると確かに最新の VirtualBox ではありませんでした。

で、VirtualBox を最新版にアップデートして vagrant up すると、見事ようやく仮想マシンが起動してくれました…。

解決にかなり時間がかかってしまいましたが、最初から最新版にアップデートしていたらエラーすら発生しなかったかもしれません。。というわけで同様の事象が発生して VirtualBox が最新でなかったら、まずは最新版へのアップデートを試すことをおすすめします。