Vagrantを再起動したら既存のVMが消えた

現象

Mac上で起動しているVagrantVM内で作業していたところ、バッテリー切れでMacが強制シャットダウンした。 その後、起動して、 Vagrant up でVagrant を起動したところ、作業していたVMではなく、新規VMが立ち上がるようになってしまった。

作業途中のファイルが失われてしまい、とても困った。

復旧する

この方法で以前のVMを起動することができた。

elm-arata.hatenablog.com

VirutalBoxのコマンドラインインターフェース VBoxManage を使って仮想マシンの情報を表示する。

$ VBoxManage list vms
"aaa_1491870543558_52578" {945beac3-3920-4eec-947e-bfce8e017aaa}
"bbb_1493466062889_97138" {462256fa-197f-477d-b1ff-7cc74e401bbb}
"ccc_1505786401940_15041" {9c2a6b5c-7cce-46e3-b60a-76e3e1324ccc}

作成した日時の昇順に表示されるので、一番下が直近に作成したVM。 一番下は、新規作成されたVMなので、1つ前の、bbb_1493… のVMを起動するように設定し直す。

以下のファイルを開き、VMのUID()を置き換える。

$ vi .vagrant/machines/default/virtualbox/id
462256fa-197f-477d-b1ff-7cc74e401bbb

VMを再起動

$ vagrant reload

復旧できた。やったぜ。