【问题标题】:Vagrant Up failing because the name already existsVagrant Up 失败,因为名称已经存在
【发布时间】:2015-11-25 15:58:39
【问题描述】:

我最近开始在本地 Wordpress 开发环境中使用 Virtualbox、Vagrant 和 VVV。它非常光滑。

我遇到的一个问题是,在使用 'vagrant halt' 关闭设备后,下次我使用 'vagrant up' 开始时会收到此错误:

==> default: Setting the name of the VM: vagrant-local 
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.exe: error: Could not rename the directory 'C:\VirtualBox VMs\ubuntu-cloudimg-trusty-va
230_94704' to 'C:\VirtualBox VMs\vagrant-local' to save the settings file (VERR_ALREADY_EXISTS)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component SessionMachine, interface IMac
VBoxManage.exe: error: Context: "SaveSettings()" at line 3015 of file VBoxManageModifyVM.cpp

我访问 C:\VirtualBox VMs\ 列出的位置,确实,该目录 'vagrant-local' 已经存在。如果我删除(或重命名)这个目录并再次运行“vagrant up”,机器就会启动。但是,它也执行完整的配置过程。当然,这需要很长时间。

我正在使用 VVV 和 Vagrant 开箱即用的所有默认配置。我应该怎么做才能帮助 VirtualBox “正确清理”并认识到它不需要在每次停止和重新启动时重新创建 VM。

或者,我只是错过了什么吗?

如果不是首选,欢迎回复“初学者级别”。我是这方面的初学者,感谢您的帮助!谢谢。


当前状态:我已从 C:\VirtualBox VMs\ 中删除了有问题的 VM;以管理员身份运行 Git Bash,我已经能够再次使用 vagrant up(完全配置)、vagrant haltvagrant up,所有这些都获得了预期的结果(第二个 up 没有配置)。截至目前,似乎一切正常。出现... :)

【问题讨论】:

  • 任何 vm 都发生同样的情况吗?您是否尝试从 vagrant 创建一个新的虚拟机并出现相同的错误?我不是 Windows 专家,但错误可能是权限问题,您可以尝试使用管理员权限运行 vagrant
  • 是的。机器上的所有虚拟机都存在此问题。我一直以管理员身份运行命令行,结果相同。 “以管理员身份运行”是 vagrant 中的某个设置,还是足够了?
  • 有点奇怪,以管理员身份运行 cli 应该没问题。在你运行vagrant up 之后是vagrant status 给你VM 的状态吗?你能再发一次vagrant suspendvagrant up 还是同样的消息?
  • 我可以查看状态。我发现了一些见解on this thread,因为我在同一工作站上也遇到了 OP 所描述的问题。如果这是一个权限问题,我应该检查任何特定的权限设置吗? IE。我的权限应该是什么?涉及哪些目录?
  • windows上运行,管理员运行应该没问题

标签: wordpress vagrant virtual-machine web-development-server


【解决方案1】:

如果您在 Mac 上,并且 vagrant destroy 不起作用,并且您收到消息:The name of your virtual machine couldn't be set because VirtualBox is reporting another VM with that name already exists. 然后您需要转到用户文件夹中的 VirtualBox VMs 文件夹,然后删除虚拟机文件夹。

它处于无法构建 VM 的奇怪状态,因为它正在尝试为已经存在的同名文件夹创建设置。

【讨论】:

  • 这是最好的答案。它与错误消息的第一行有关,它解决了问题。
  • 删除有问题的文件夹后,我还必须在vagrant up 成功之前关闭/打开我的主机(MacOs Big Sur)。
【解决方案2】:

我的比大多数都简单一点。我检查了“Virtual Box VMs”目录(对于Windows)并删除了它试图命名的文件夹。这为我解决了这个问题。

【讨论】:

    【解决方案3】:

    嗯..这是一个奇怪的问题。当您运行 vagrant halt 时,它只会发送信号以终止 VM。

    Vagrant 将所有配置保存在 .vagrant 目录下(至少对于 mac os 和 linux,不完全确定是否是 windows),你永远不应该删除这个目录,因为它包含对你 vm 的所有引用,所以当你运行vagrant up下次vagrant会从这个目录搜索信息启动对应的vm,它知道不需要重新创建VM,也不需要provisioning。

    删除虚拟机信息的正确方法是运行vagrant destroy,它将删除所有.vagrant目录和虚拟机。

    然后是从 .vagrant 和您的 vm 再次建立这种链接的方法,但它有点棘手,不确定它们是否得到官方支持

    当你使用 vagrant 时,VirtualBox 应该变得(几乎)透明,你不需要启动它来使用你的 VM,一切都应该从 vagrant 运行(至少在初学者级别)

    注意:在windows上运行,以管理员身份运行应该没问题

    【讨论】:

    • 感谢您的回复!我在 Windows 上。我知道vagrant destroy(因为我用它来删除一些“练习”机器)。在这种情况下,我使用vagrant haltdefault intention of simply "powering off"。这是用于此目的的正确命令,对吗?
    • 是的,vagrant halt与运行sudo shutdown -P now基本相同
    【解决方案4】:

    我在 vagrant up 时遇到了上面提到的 git bash 错误。发生此问题的可能性有多种。

    我已经使用了下面提到的步骤和 vagrant 命令正常工作。

    1. 打开 Oracle VM 虚拟管理器 - 在此 Oracle VM 虚拟 管理器面板,删除当前正在运行的虚拟机。
    2. 从 git bash 命令提示符退出
    3. 再次打开 git bash
    4. 以 vagrant up 身份运行 vagrant up 命令

    Vagrant up 命令将成功运行。

    请注意: 确保在关闭 git bash 命令提示符时运行 vagrant halt 命令。

    首先,vagrant halt 然后退出命令。

    【讨论】:

    • 请记住,这将删除 VM 并在执行 'vagrant' up 时重新运行配置。
    【解决方案5】:

    VBoxManage:错误:无法将目录“<SOURCE>”重命名为“<DESTINATION>”以保存设置文件(VERR_ALREADY_EXISTS

    如果您不关心您的虚拟机状态并且您可以从头开始配置它,删除您的目标文件夹,那么它应该可以工作。还要仔细检查您是否也将其从 VirtualBox 列表中删除。

    这可能发生在 VirtualBox 未正确清理或您中断清理过程(例如,vagrant destroy 中间的 Ctrl-C)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-29
      • 1970-01-01
      • 1970-01-01
      • 2020-07-05
      • 2015-03-26
      • 1970-01-01
      • 2013-06-29
      • 2018-12-23
      相关资源
      最近更新 更多