【问题标题】:How do I destroy a VM when I deleted the .vagrant file?删除 .vagrant 文件后如何销毁虚拟机?
【发布时间】:2013-03-02 18:49:10
【问题描述】:

我删除了包含 .vagrant 文件的目录。当我启动一个新虚拟机时,它抱怨端口正在使用中。那么如何在没有 .vagrant 文件的情况下销毁 VM?

【问题讨论】:

  • 一个共享的问题是一个问题减半:做了完全相同的愚蠢问题,再次感谢 SO 立即解决......

标签: virtual-machine vagrant


【解决方案1】:

以下 VirtualBox 命令可能会有所帮助。如果 poweroff 不起作用,请尝试 unregistervm。

$ VBoxManage list runningvms
$ VBoxManage controlvm <uuid> poweroff
$ VBoxManage unregistervm <uuid>

来源:https://support.cloud.engineyard.com/entries/21449637-I-deleted-Vagrantfile-vagrant-and-or-the-app-directory-before-halting-the-VM-Now-ey-local-up-errors-

Shell 脚本停止所有正在运行的虚拟机:

VBoxManage list runningvms | awk '{print $2;}' | xargs -I vmid VBoxManage controlvm vmid poweroff

【讨论】:

  • 这些命令肯定会破坏虚拟机。但是他们仍然在“vagrant global-status”中为机器留下了一个条目。
  • @ValkoSipuli 试试vagrant global-status --prune。见stackoverflow.com/a/24446866/300836
  • 在我的例子中,我使用了一个细微的变化:VBoxManage list vms; VBoxManage discardstate &lt;uuid&gt;; VBoxManage unregistervm &lt;uuid&gt;
  • 使用vboxmanage unregistervm --deletevagrant destroy 一样物理删除VM
【解决方案2】:

最简单的做法是启动 VirtualBox 的 GUI 客户端并移除(可能在关闭后)虚拟机。您只需右键单击虚拟机并执行这些操作。

【讨论】:

  • 如果您通过 ssh 进入您的开发箱或仅从命令行工作,则不会。此外,如果您 alias killvms="VBoxManage list runningvms | awk '{print \$2;}' | xargs -I vmid VBoxManage controlvm vmid poweroff" 您只需要键入 killvms 而不是启动并等待 GUI。
  • 我假设通常开发人员在他们的本地机器上使用 Vagrant 并且仍然在后台某处运行 GUI :)
  • 你的假设是错误的!但既然你住得离我这么近,我就放这一张吧。嗨,开个玩笑,对于在本地运行 vagrant 的人来说,这仍然是一个很好的答案。
【解决方案3】:

如果您使用 GUI 删除了 VM,但仍然出现错误,您可以尝试从“%userprofile%\VirtualBox VMs”中删除指定的 VM。这对我有用

【讨论】:

    【解决方案4】:

    以下 bash 函数将关闭并销毁与当前用户的所有 VM 相关的所有文件:

    function killvms() {
      VBoxManage list runningvms | awk '{print $2;}' | xargs -I vmid VBoxManage controlvm vmid poweroff
      VBoxManage list vms | awk '{print $2;}' | xargs -I vmid VBoxManage unregistervm --delete vmid
    }
    

    将它添加到您的~/.bash_aliases 并通过killvms 在您的shell 中调用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-26
      • 2014-08-17
      • 2019-07-17
      • 1970-01-01
      • 1970-01-01
      • 2011-09-27
      • 2018-05-15
      • 1970-01-01
      相关资源
      最近更新 更多