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.
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.
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.
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.