【问题标题】:A VirtualBox machine with the name 'homestead' already exists一个名为“homestead”的 VirtualBox 机器已经存在
【发布时间】:2015-01-15 14:48:33
【问题描述】:

自从宅基地2.0以来,宅基地laravel一直没有工作

我不知道为什么“homestead init”会在 mydirectory/.homestead 中创建一个 Homestead.yaml 文件 而不是在项目目录中。 Homestead up OR Vagrant up 创建以下消息

名称为“homestead”的 VirtualBox 机器已经存在。

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'laravel/homestead'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'laravel/homestead' is up to date...
A VirtualBox machine with the name 'homestead' already exists.
Please use another name or delete the machine with the existing
name, and try again.

【问题讨论】:

标签: vagrant virtual-machine virtualbox


【解决方案1】:

VBoxManage:错误:无法将目录“/Users/xxxx/VirtualBox VMs/ubuntu-20.04-amd64_xxxxxxx”重命名为“/Users/xxxx/VirtualBox VMs/homestead”以保存设置文件(VERR_ALREADY_EXISTS)

在 mac 中为我手动删除 /Users/xxxx/VirtualBox VMs/homestead

【讨论】:

    【解决方案2】:

    要执行的命令:

    vagrant box list
    vagrant box remove laravel/homestead
    vagrant global-status
    vagrant destroy nameOfYourBox
    

    打开你的 VirtualBox 并删除你宅基地的所有项目

    vagrant up
    

    【讨论】:

    • 这个线程中提到的唯一对我有用的解决方案,谢谢!
    【解决方案3】:

    您只需将密钥 name 添加到您的 homestead.yaml 文件中,就像这样:

    name: name_of_you_machine
    

    这对我有用。

    【讨论】:

    • 这就是我一直在寻找的。当您想尝试其他 Homestead 版本时非常有用。我们把这个放在哪里?检查下面的答案:P
    【解决方案4】:

    Windows10

    编辑 Homestead.yaml 文件并为盒子命名:

    ip: "192.168.10.10"
    memory: 2048
    cpus: 2
    provider: virtualbox
    name: my-new-vbox      #new name for the box
    

    然后运行 ​​vagrant upvagrant up --provision

    或者

    在 GUI 中打开 Virtualbx 应用程序并删除所有导致问题的 virtualbox 并运行上述命令

    或者

    删除 homestead 文件夹中的 "Vagrant" 文件并运行上述命令。

    【讨论】:

      【解决方案5】:

      来自以下消息:

      名称为“vm_name”的 VirtualBox 计算机已存在。 请使用其他名称或删除现有的机器 名称,然后再试一次。

      我从命令行列出了当前正在运行的虚拟机:

      VBoxManage list vms
      

      结果:

      “vm_name”{8ba467b7-da96-4f68-9bf8-671dd6f0d007}

      然后继续删除有问题的虚拟机:

      VBoxManage unregistervm 8ba467b7-da96-4f68-9bf8-671dd6f0d007 --delete
      

      【讨论】:

      • 显示如何从命令行删除 VM 的唯一答案
      • 请注意,如果 VirtualBox VM 仍在运行,这将不起作用。必须关闭 VM,否则命令将失败“因为 VM 已锁定”。
      • 是的,该命令将关闭电源。对我有用的总结:vboxmanage list vms、vboxmanage controlvm poweroff、vboxmanage unregistervm --delete
      • 这是唯一适合我的解决方案。谢谢。
      【解决方案6】:

      对于我来说,id 文件存在于下面提到的位置。 D:\drupalvm.vagrant\machines\drupalvm\virtualbox

      【讨论】:

        【解决方案7】:

        我遇到了以下错误:

        错误

        A VirtualBox machine with the name 'homestead-7' already exists.
        Please use another name or delete the machine with the existing
        name, and try again.
        

        解决方案

        • 找到 VirtualBox VMS 文件夹,在我的例子中它位于 ~/VirtualBox VMs
        • 使用ls 命令列出文件夹中的元素,并查看虚拟机是否存在
        • 删除带有机器名称的文件夹,在我的例子中是 homestead-7
        • 在homestead文件夹中重新执行vagrant up命令

        仅此而已,希望对您有所帮助,这是我的解决方案。

        问候!

        【讨论】:

          【解决方案8】:

          重命名已经存在的默认虚拟机

          免责声明

          以下过程将破坏您的虚拟机,并且可能仅适用于像我这样的目标环境!对于生产环境,可以考虑修复关联,如described here

          我在使用覆盖现有 VM 的默认名称后遇到了这个问题

          Vagrant.configure("2") do |config|
            config.vm.define :ubuntu_test
          

          还设置了 VirtualBox 名称(作为新手,我认为 Vagrand 也会使用此名称)

          config.vm.provider "virtualbox" do |vb|
               vb.name = "Ubuntu-Test"
          end
          

          通过添加config.vm.define,Vagrant 似乎不再将 VirtualBox VM 与 Vagrant 文件关联,因为即使 vagrant destroy -fVM not createdvagrant up 抛出此错误

          名称为“Ubuntu-Test”的 VirtualBox 机器已经存在。

          删除那些僵尸虚拟机
          1. 如果VM正在运行,先停止它:vboxmanage shutdown <VMName>(这里的名字是Ubuntu-Test
          2. 通过运行vboxmanage list vms 获取 ID
          3. 删除:vboxmanage unregistervm <Id> --delete
          4. 现在可以使用vagrant up 重新创建您的 VM
          5. 使用vagrant global-status --prune,你的新名字就出现了

          【讨论】:

            【解决方案9】:

            我编辑了 Homestead.yaml 并为其添加了新名称

            ip: "192.168.10.10"
            memory: 2048
            cpus: 4
            provider: virtualbox
            name: my-new-homestead-box-name
            

            【讨论】:

            • 这是正确的做法。 homestead.rb 配置首先在 homestead.yaml 中查找 name 变量
            • 我试图让另一个宅基地运行。从来没有想过会这么容易。只需在 Homestead.yaml 中添加一个名称
            • 这确实应该是公认的答案,并且最容易实现。
            • 同意。这是一个简单的答案,让我摆脱了 Linux-VirtualBox-Vagrant-Laravel-Homestead 流沙
            • 完全同意!没有比这更容易的了。
            【解决方案10】:

            在框之后和您的名字之前添加--force

            【讨论】:

            • edit 解释您为什么认为此解决方案会起作用、它的作用和方式。同样值得将您的英语正式化(尽管我很欣赏英语可能不是您的第一语言),尽管我已经编辑了您的答案以纠正和整理。
            【解决方案11】:

            我解决了这个编辑/Homestead_folder/scripts/homestead.rb

            寻找vb.name = settings["name"] = "homestead" 行并将homestead 更改为HOMESTEAD“vói lá”,这对我有用。

            【讨论】:

            • 这是我见过的最好的答案。
            • 这行得通。在此文件中搜索所有记录 vb.name = settings['name'] 并相应更改
            【解决方案12】:

            这些都不适合我。我使用的是旧的开发机器

            我尝试过:

            1. vagrant global-status > 销毁任何你不需要的id 或匹配的冲突

            2. 打开 virtualbox 并删除 + 删除您不需要或有冲突的文件

            什么有效:

            • 找到您的 ~/.vagrant/machines/~/.vagrant.d/boxes 文件夹。就我而言,它包含有冲突的 vm 以及一堆旧的遗留 vm 机器,由于某种原因,步骤 1 和 2 没有删除。

            • 清除这些后,终于一切正常了!

            【讨论】:

            • 如果冲突的虚拟机可以被删除/清除,这是一个很好的答案。既然文件夹是~/.vagrant.d/boxes/@wired00,就应该修改这个答案
            • @lintuxvi 刚刚添加 :)
            • 谢谢!为我解决了问题!
            【解决方案13】:

            您可以打开 VirtualBox GUI 并删除有冲突的虚拟机。

            【讨论】:

              【解决方案14】:

              我参加这个聚会有点晚了,但对于遇到这个问题的其他人来说,SergioPeluzzi 是最接近的,但没有得到雪茄:

              寻找 vb.name = settings["name"] = "homestead" 行并将 "homestead" 更改为 "HOMESTEAD" 和 "vói lá"

              这行其实是:

              vb.name = settings["name"] ||= "homestead"
              

              从设置["name"] 部分可以看出,您只需在 Homestead YAML 文件中添加一个名称字段,例如

              memory: 2048
              cpus: 1
              provider: virtualbox
              name: my-sexy-homestead-box
              

              【讨论】:

              • 如果您实际上安装和使用多个 Homestead 实例,这是最好的答案。
              • 我同意@lintuxvi,如果您使用多个 Homestead 实例,这是最好的答案
              • 密钥是name: my-sexy-homestead-box -- 谢谢!
              • 最好的答案!
              • 这是正确答案。如果您有多个 Homestead 实例正在运行,则其他答案正确(实际上会弄乱您的安装)。
              【解决方案15】:

              打开 VirtualBox GUI。查看您的虚拟机并将其删除。 它解决了我的问题。

              【讨论】:

                【解决方案16】:

                我今天遇到了同样的问题。 Windows 10。我最近更新了 Homestead,所以错误可能是因为这个。我都试过了,destroyup、删除文件夹等等。每当我尝试运行vagrant up 时,它都会显示这种错误。解决方案?更新后,我注意到 Homestead 现在以项目文件夹名称命名这些框,并且 Homestead.yaml 包含所有这些信息。我只是运行那个 Homestead Windows 配置vendor\\bin\\homestead make,然后运行vagrant up(在确保一切干净之前),瞧,看起来机器现在正在启动。 =) 如果需要,请尝试。

                【讨论】:

                  【解决方案17】:

                  就我而言,除了该错误消息之外,没有任何迹象表明 VM“已经存在”。 VirtualBox UI 上什么都没有,“vboxmanage list vms”没有返回,“vagrant global-status”没有任何返回,“.vagrant.d\boxes”中不存在等等。我通过在 VM VirtualBox 管理器中手动创建一个新的同名 VM(使用“新建”按钮 + 接受所有默认值),然后将其删除(右键单击 > 删除)来解决它。之后,“vagrant up”按预期工作了。

                  【讨论】:

                    【解决方案18】:

                    如果您想保留您的机器,而不破坏并重新创建以下步骤应该可以解决您的问题。 (我在 OS X El Captain,Vagrant 1.8.1 上工作)

                    以调试模式运行宅基地

                    homestead --debug up
                    

                    在输出中寻找类似的东西:

                    INFO 机器:初始化机器:默认 INFO 机器:- 提供者:VagrantPlugins::ProviderVirtualBox::Provider INFO 机器: - 框:# INFO 机器:- 数据目录:/Users/YOUR_HOME_DIR/Workspace/Homestead/.vagrant/machines/default/virtualbox

                    数据目录,是你感兴趣的路径。

                    然后vboxmanage list vms

                    “宅基地”{0e8438b9-4a67-4fb1-80cb-2c62cf04ab5c} “定居者_默认_1447385930122_73498_1474294682778_13108” {93ecb93f-f159-4406-a384-5312b4d3ab34}

                    编辑 id 文件,在您在上一个命令中找到的路径中

                    vi /Users/YOUR_HOME_DIR/Workspace/Homestead/.vagrant/machines/default/virtualbox/id
                    

                    用您要修复的虚拟机的 ID 替换该文件的内容,在这种情况下是

                    0e8438b9-4a67-4fb1-80cb-2c62cf04ab5c

                    现在试试

                    homestead up
                    

                    虚拟机应该开始启动。它可能有效,或者您可能遇到 ssh 身份验证问题

                    default: SSH address: 127.0.0.1:2222
                    default: SSH username: vagrant
                    default: SSH auth method: private key
                    default: Warning: Authentication failure. Retrying...     default: Warning: Authentication failure. Retrying...
                    

                    要解决这个问题,请执行以下操作 检查 Homestead SSH 配置

                    homestead ssh-config
                    

                    你应该得到类似的东西

                    主机默认HostName 127.0.0.1 用户流浪端口2222
                    UserKnownHostsFile /dev/null StrictHostKeyChecking no
                    密码验证无
                    身份文件 “/Users/pryznar/.vagrant.d/insecure_private_key”
                    身份只有是 日志级别致命

                    编辑IdentityFile文件

                    /Users/YOUR_HOME_DIR/.vagrant.d/insecure_private_key
                    

                    检查 Homestead.yml

                    cat /Users/YOUR_HOME_DIR/.homestead/Homestead.yaml
                    

                    然后将路径复制到密钥keys下的文件,并从该文件复制私钥

                    cat ~/.homestead/ssh/id_rsa
                    

                    最后一步是将 /Users/YOUR_HOME_DIR/.vagrant.d/insecure_private_key 中的私钥替换为您刚刚复制的私钥

                    现在再次尝试梯级宅基地,应该可以工作。

                    homestead up
                    

                    我收到了一些警告,但到目前为止它没有问题

                    ==> 默认值:警告:在命令行界面上使用密码可能不安全。 ==> 默认值:ERROR 1045 (28000): Access denied for user 'homestead'@'localhost' (使用密码: YES) SSH 命令 以非零退出状态响应。 Vagrant 假设这意味着 命令失败。此命令的输出应在日志中 更多。请阅读输出以确定出了什么问题。

                    【讨论】:

                      【解决方案19】:

                      如果您是 Windows 用户,请确保删除 C:\Users\<Username>\VirtualBox VMs\homesteadfolder。因为如果还有一个名为homestead的文件夹,vagrant up的动作就不会完成

                      【讨论】:

                      • 就我而言,我有两个文件夹:homestead 和 homestead-7。删除两者后,问题解决。谢谢!
                      【解决方案20】:

                      Vagrant 依赖于 VirtualBox(如果这是默认提供程序),因此它会在配置您的 VM 之前首先检查现有环境。

                      它正在执行以下命令:

                      VBoxManage list vms
                      

                      当它找到具有相同主机名的虚拟机时,它就会失败。

                      您可以通过以下方式对其进行调试:

                      vagrant --debug up
                      

                      找出确切的原因。


                      解决方案

                      如果您打算在不同的文件夹中使用多个虚拟机,那么您需要在您的Vagrantfile 中更改您的config.vm.hostname(也可能是config.vm.provider(name))以使其独一无二。或者干脆删除它,这样 Vagrant 就会为每个虚拟机分配一个不同的名称。

                      如果不是这种情况,只需关闭并取消注册之前因运行而发生冲突的 VM:

                      VBoxManage controlvm NAMEOFVM poweroff
                      VBoxManage unregistervm NAMEOFVM --delete
                      

                      然后重新运行您的vagrant up

                      如果目录重命名失败(因为你错过了--delete),那么rename or remove the destination folder,例如:

                      rm -fr ~/"VirtualBox VMs/NAMEOFVM"
                      

                      然后重试。


                      这个问题可能与:GitHub issue #2969 - vagrant up not detecting a previously run VM

                      【讨论】:

                        【解决方案21】:

                        我通过使用vboxmanage获取VM的ID来解决。

                        $ vboxmanage list vms
                        "my-vm" {c700b8b6-b766-4638-871b-736b44b7db18}
                        

                        将所需 VM 的 ID(c700…db18 字符串)复制到 ~/.vagrant/machines/default/virtualbox/id 的内容中。保存文件,然后运行 ​​vagrant up 以使 vm 正常工作,而无需销毁它。

                        【讨论】:

                        • 您的回答应该被接受!像其他人建议的那样,您在不破坏机器的情况下解决了问题
                        • 请注意,如果您通过define(像我一样)以不同的方式命名您的盒子,那么路径将不是../default/ ,它是:.vagrant/machines/<box name>/virtualbox/id。 #利润!
                        • 工作就像一个魅力。只是好奇为什么我的 vm 的 id 突然改变了,这是必要的。
                        • 在我的开发环境中,id 文件位于同一路径上,但位于项目的根目录上。在 project-root/.vagrant/machines/default/virtualbox/id
                        • 对我来说,.vagrant 文件夹不在 ~/ 中,而是在 homestead 安装文件夹中(即您运行 vagrant up 的文件夹)
                        【解决方案22】:

                        有时您可能不想删除旧框。昨天可能旧的 Vagrant 坏了,我更新了 Vagrant 和 Virtualbox,但文件夹映射不起作用。我想运行新盒子并出现此错误。

                        我不想删除旧盒子(因为我想运行一些备份)但我想运行新盒子。解决方案是运行 VirtualBox,右键单击 Homestead 机器并选择设置,然后将名称从 homestead 更改为 homestead_old

                        在那之后,我能够安装宅基地,但拥有这台旧机器,也可以运行它来进行我需要的任何备份。

                        【讨论】:

                          【解决方案23】:

                          如果您在 Windows 中使用 homestead,只需打开您的 Oracle VM VirtualBox 并删除 homestead VM。

                          【讨论】:

                            【解决方案24】:

                            我今天遇到了同样的问题。花几个小时寻找解决方案。 如果由于任何原因您找不到退出虚拟机的列表,请输入终端

                            sudo virtualbox
                            

                            这将在 GUI 中运行 Virtual Box。您应该会看到完整的虚拟机列表,并且可以从那里管理它们。 仅键入“virtualbox”不会显示任何内容。您需要是 root(管理员)。

                            感谢mightyspaj 的提示。

                            【讨论】:

                            • 使用 OS X 上的常规 virtualbox 应用程序,我无法在列表中看到任何 VM,即使我被告知它已经存在。然后我输入 sudo virtualbox 并看到一大堆虚拟机,问题就解决了。谢谢。
                            • 永远不要在 VirtualBox 中使用 sudo。你会搞砸权限
                            【解决方案25】:

                            经过几个小时的故障排除后,我没有其他任何工作,因为没有人提到这个小细节。

                            根据您在安装时的权限,您可能需要以管理员身份运行 virtualbox。只有当我这样做时,我才在虚拟机列表中看到了我的 vagrant box。

                            然后我开始从 virtualbox 中删除我名为 homestead 的虚拟机,问题就解决了。

                            【讨论】:

                              【解决方案26】:

                              对我来说,这台机器在 VirtualBox 应用程序中没有显示为活动虚拟机。要解决这个问题,我必须这样做:

                              vagrant global-status

                              这给了我需要销毁的机器的 ID。使用 ID,运行:

                              vagrant destroy {VM ID}

                              我必须在 sudo 中运行它才能真正销毁机器。那时,我能够运行

                              vagrant up

                              【讨论】:

                              • 如果您的宅基地箱已损坏,尚未运行,这就是您的答案。在运行 VirtualBox 的 Ubuntu 14.02 上验证。
                              • 这很有用,因为它显示了运行 vagrant VM 的目录
                              • 命令vagrant destroy vm_id必须在同一目录下运行。
                              【解决方案27】:

                              在我的情况下,以下article 提供了解决方案。导致问题的路径 /var/root/VirtualBox VMs/ 中有一个名为 homestead 的文件夹。一旦这个文件夹被删除,rm -r homestead,问题就解决了。如果您看不到或无法访问此路径,请在终端窗口中执行以下命令:

                              $ sudo -s 
                              $ cd /var/root/VirtualBox\ VMs
                              

                              然后继续删除 homestead 文件夹。

                              【讨论】:

                                【解决方案28】:

                                即使在运行“homestead destory”和“vagrant destroy”之后,我也收到了相同的错误消息。和你一样,我使用的是 VirtualBox 提供者、流浪者和宅基地。这是我所做的:

                                1. 已打开 VirtualBox GUI。我将“宅基地”视为虚拟机,但无法将其删除,按钮显示为灰色。
                                2. 我退出了我的操作系统,重新登录并重新打开了 VirtualBox。状态现在是“中止”,我可以删除。
                                3. ~/VirtualBox\ VMs/homestead 中有一些残留文件,所以我运行了rm -r /Users/gabriel/VirtualBox\ VMs/homestead
                                4. 我现在可以运行“宅基地”

                                【讨论】:

                                  【解决方案29】:

                                  以上都不适合我。我的最终解决方案是:

                                  cd ~/.composer/vendor/laravel/homestead/.vagrant/machines;
                                  rm -R default;
                                  cd /var/www/path/to/project;
                                  homestead up;
                                  

                                  【讨论】:

                                    【解决方案30】:

                                    我打开了 virtualBox,然后删除了之前创建的 homestead vm。它有帮助。

                                    【讨论】:

                                      猜你喜欢
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 2015-05-14
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 2017-01-27
                                      • 2017-10-22
                                      • 1970-01-01
                                      相关资源
                                      最近更新 更多