Vagrant 在从文件系统中删除一个“漫游”框之后,如何从全局状态中删除该框?

Vagrant 在从文件系统中删除一个“漫游”框之后,如何从全局状态中删除该框?,vagrant,virtualbox,Vagrant,Virtualbox,我删除了一个文件夹,其中包含一个正在运行的流浪者盒子,然后才意识到它仍在运行 我现在如何将其从Vagrant(全球状态)中删除 我已经删除了Virtualbox VM。要丢弃vagrant全局状态中列出的旧框(例如,您从文件系统中删除了包含.vagrant目录的文件夹),只需运行: vagrant global-status --prune 您可能需要直接从提供程序(VMWare、Virtualbox,…)控制界面中删除虚拟机。对于我的情况:其中kitchen和.kitchen/文件夹可能包含

我删除了一个文件夹,其中包含一个正在运行的流浪者盒子,然后才意识到它仍在运行

我现在如何将其从Vagrant(全球状态)中删除


我已经删除了Virtualbox VM。

要丢弃
vagrant全局状态中列出的旧框(例如,您从文件系统中删除了包含
.vagrant
目录的文件夹),只需运行:

vagrant global-status --prune

您可能需要直接从提供程序(VMWare、Virtualbox,…)控制界面中删除虚拟机。

对于我的情况:其中kitchen和.kitchen/文件夹可能包含由创建的隐藏流浪文件

$ kitchen create
我需要做的不仅仅是kitchen destroy或vagrant destroy,甚至是vagrant destroy machineID(来自vagrant global status,它提供了整个用户空间中的vagrant实例列表)

在我的例子中,我必须清除users.vagrant隐藏目录中包含的vagrant machine lock文件

$ rm -r ~/.vagrant/data
在我的情况下,我需要执行上面的命令

然后我终于有了一个干净的房间

$ vagrant global-status

list

我相信全局数据的新文件名是
~/.vagrant.d


因此,您可以运行
rm-r~/.vagrant.d
删除所有用户数据,重新开始。

首先使用
vagrant全局状态
列出所有的vagrant机器及其状态和
id

然后您可以使用:

 vagrant destroy -f the_id_of_the_machine
之后,如果再次运行
vagrant global status
,您将发现在
vagrant destroy-f
命令中指定的id已从列表中删除


然后您可能需要重新启动计算机,但是这些命令不会影响您的框。

以上命令没有删除Windows计算机上的旧框。我已经从virtualbox provider文件夹中删除了
.vagrant
文件夹和该框,但该框仍在
vagrant全局状态列表中

vagrant up
命令给出的注释所述:

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.

因此,我从进程列表中删除了
ruby.exe
,并执行了一个后续的
vagrant全局状态--prune

vagrant VM是否正在运行并不重要(我最近发现了这一点)。即使虚拟机已停止,如果您手动删除其文件而不是运行
vagrant destroy
vagrant global status
仍将报告“主机状态未知”问题。我为自己创建了相反的问题:我从提供程序中删除了虚拟机的文件,并且还更改了Vagrant文件,使VM不再是项目Vagrant配置的一部分。
--prune
选项也适用于我的场景。谢谢它只在一个正在运行的流浪者配置的虚拟机中对我有效。对我无效。我必须手动编辑
~/.vagrant.d/data/machine index
,并删除有问题的条目。这对我的情况有效。如果您更改了您的机器名,而旧的机器名(不再工作)仍按vagrant global status列出。