vagrant up
でVagrantが
起動できなくなり困りました。その際の解決方法です。
vagrant up で box already exist
vagrant up
をしてもboxが存在すると言われて起動できません。
vagrant up
A VirtualBox machine with the name 'hoge' already exists.
Please use another name or delete the machine with the existing
name, and try again.
vagrant destroy
単にvagrant destroyを実行すると、その場でdestroyしていいか聞いてきますのでy
を入力して実行するとdestroyを実行できます。
vagrant destroy で Nameを指定
vagrant global-status
を実行すると、いまある環境がわかります。そこからvagrant destroy
でNameをdestroyするとvagrant up
が走るかもしれません。
vagrant destroy local.example.com
ただ、ここで以下のようにエラーが出る場合があります。
A VirtualBox machine with the name 'local.pugiemonn.com' already exists.
Please use another name or delete the machine with the existing
name, and try again.
この場合はvagrant global-status
でなくオプションを付けてください。
vagrant global-status --prune
--prune
はcacheを削除するオプションみたいです。
vagrant box remove で boxを削除
もしくはvagrant box remove
でboxを削除するとvagrant up
が動くかもしれません。
boxの一覧はvagrant box list
でboxの一覧を確認できます。
vagrant box remove hoge
Box 'hoge' (v0.1.1) with provider 'virtualbox' appears
to still be in use by at least one Vagrant environment. Removing
the box could corrupt the environment. We recommend destroying
these environments first:
default (ID: 9c5d026830a7a7s91dadb21bbb3f6f34)
Are you sure you want to remove this box? [y/N]
VBoxのディレクトリを削除する
VBoxのディレクトリに書き込めない場合はディレクトリを削除して作りなおすとvagrant up
が走るかもしれません。
何度か実行しているうちに以下の様エラーがでました。
The name of your virtual machine couldn't be set because VirtualBox
is reporting another VM with that name already exists. Most of the
time, this is because of an error with VirtualBox not cleaning up
properly. To fix this, verify that no VMs with that name do exist
(by opening the VirtualBox GUI). If they don't, then look at the
folder in the error message from VirtualBox below and remove it
if there isn't any information you need in there.
VirtualBox error:
VBoxManage: error: Could not rename the directory '/Users/kawasakiosamu/VirtualBox VMs/hoge_1426591193616_11769' to '/Users/kawasakiosamu/VirtualBox VMs/hoge' to save the settings file (VERR_ALREADY_EXISTS)
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component SessionMachine, interface IMachine, callee nsISupports
VBoxManage: error: Context: "SaveSettings()" at line 2788 of file VBoxManageModifyVM.cpp
この場合/Users/kawasakiosamu/VirtualBox VMs/hoge
がVERR_ALREADY_EXISTSということなので消してしまいました。
sudo rm -rf /Users/kawasakiosamu/VirtualBox¥ VMs/hoge
VirtualBoxから停止
VitualBoxを起動し、該当のVMを停止するのも有効です。
/etc/exportsのディレクトリがかぶっている
nfsを使っている場合これがでるかもしれません。
remove this file or specify a different file name for outputting.
上記のように表示され場合 /etc/exports
を編集して書き込まれているディレクトリの表記を削除すると起動できます。
最終的に
vagrant up
が走りました。
参考