1. pugiemonn

    No comment

    pugiemonn
Changes in body
Source | HTML | Preview
@@ -1,66 +1,88 @@
`vagrant up`でVagrantが
起動できなくなり困りました。その際の解決方法です。
# vagrant up で box already exist
`vagrant up`をしてもboxが存在すると言われて起動できません。
```bash:vagrantの起動が失敗
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`が走るかもしれません。
```bash:destroyでNameを指定
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の一覧を確認できます。
```bash:vagrantの起動が失敗
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ということなので消してしまいました。
```bash:ディレクトリを削除
sudo rm -rf /Users/kawasakiosamu/VirtualBox¥ VMs/hoge
```
-すると今度は`vagrant up`が走りました。
+
+# VirtualBoxから停止
+VitualBoxを起動し、該当のVMを停止するのも有効です。
+
+# 最終的に
+`vagrant up`が走りました。
+
+# 参考
+http://stackoverflow.com/questions/24440142/removing-list-of-vms-in-vagrant-cache
+