87
votes

I deleted a folder containing a running Vagrant box before realising it was still running.

How can I delete it from Vagrant (global-status) now?

I already removed the Virtualbox VM.

5
Whether the Vagrant VM is running or not doesn't matter (I recently found this out). Even if the VM is stopped, if you manually delete its files instead of running vagrant destroy, vagrant global-status will still report the "host state unknown" problem.John Berberich

5 Answers

199
votes

To discard old boxes listed in vagrant global-status (eg. you deleted the folder containing the .vagrant dir from the filesystem) you just need to run:

vagrant global-status --prune

You might need to remove the Virtual Machine directly from your provider (VMWare, Virtualbox, ..) control interface.

6
votes

I believe that the new filename of the global data is ~/.vagrant.d.

So you can run rm -r ~/.vagrant.d to delete all user data for a fresh start.

0
votes

For my case: Where kitchen and .kitchen/ folder may contain hidden vagrant files create by

$ kitchen create

I need to go further than either kitchen destroy or vagrant destroy or even vagrant destroy machineID ( from vagrant global-status - which gives a list of vagrant instances across your user space. )

In my case, I had to blow away the vagrant machine lock files contained in the users .vagrant hidden directory.

$ rm -r ~/.vagrant/data

And in my case I need to sudo the above command.

Then I finally got to a clean

$ vagrant global-status

list

0
votes

First you use vagrant global-status to list all the vagrant machines and their status and ids.

then you can use:

 vagrant destroy -f the_id_of_the_machine

after that if you run vagrant global-status again you will find that the id you have specified in the vagrant destroy -f command has been removed from the list.

and then you might need to restart your machine However these commands will not affect your boxes.

0
votes

The above commands didn't remove the old box in my case on a Windows machine. I had already removed the .vagrant folder and the box from the virtualbox provider folder but the box was still in the vagrant global-status list.

As mentioned in the comment given by a vagrant up command:

If you believe this message is in error, please check the process
listing for any "ruby" or "vagrant" processes and kill them. Then
try again.

So I killed ruby.exe from the process list and did a subsequent vagrant global-status --prune.