一个名为' homestead'的VirtualBox机器。已经存在

时间:2014-11-18 12:02:24

标签: vagrant virtual-machine virtualbox

由于宅基地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.

31 个答案:

答案 0 :(得分:254)

我通过使用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工作而不必销毁它。

答案 1 :(得分:68)

对我来说,该机器没有显示为VirtualBox应用程序中的活动VM。要修复我必须这样做:

vagrant global-status

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

vagrant destroy {VM ID}

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

vagrant up

答案 2 :(得分:41)

您可能正在运行虚拟机!打开程序virtualbox并关闭其他虚拟机;) http://smallbusiness.chron.com/shut-down-virtualbox-43657.html

如果这不起作用,那么您可能想要删除旧的宅基地文件夹并将所有项目放在新文件夹中;)

答案 3 :(得分:29)

来自以下消息:

  

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

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

vboxmanage list vms

结果:

  

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

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

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

答案 4 :(得分:17)

我在派对上有点迟了,但是对于其他任何有这个问题的人来说,SergioPeluzzi最接近,但没有得到雪茄:

  

寻求vb.name = settings [“name”] =“homestead”行并将“宅基地”改为“HOMESTEAD”和“vóilá”

该行实际上是:

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

从设置[“name”]的位可以看出,您只需要在Homestead YAML文件中添加一个名称字段,例如

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

答案 5 :(得分:15)

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

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

答案 6 :(得分:9)

我的项目中有一个旧的.vagrant目录,导致错误:)

如果这没有为您解决,我建议打开VirtualBox并删除所有VirtualBox并重试。

答案 7 :(得分:8)

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

sudo virtualbox

这将在GUI中运行Virtual Box。您应该看到完整的VM列表,然后您就可以管理它们了。 仅键入“virtualbox”不会显示任何内容。你需要是root(管理员)。

感谢mightyspaj的提示。

答案 8 :(得分:7)

即使在运行" homestead destory"和" vagrant destroy"之后,我也收到了相同的错误消息。和你一样,我使用的是VirtualBox提供商,vagrant和宅基地。这就是我的所作所为:

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

答案 9 :(得分:6)

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

答案 10 :(得分:6)

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

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

答案 11 :(得分:3)

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

答案 12 :(得分:3)

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

答案 13 :(得分:2)

您只需在提供者之后将密钥name添加到homestead.yaml文件中,如下所示:

name: name_of_you_machine

对我有用。

答案 14 :(得分:2)

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

以调试模式运行homestead

homestead --debug up

查找输出中的内容:

  

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

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

然后vboxmanage list vms

  

“homestead”{0e8438b9-4a67-4fb1-80cb-2c62cf04ab5c}   “settler_default_1447385930122_73498_1474294682778_13108”   {93ecb93f-f159-4406-a384-5312b4d3ab34}

在您在上一个命令

中找到的路径中编辑 id 文件
vi /Users/YOUR_HOME_DIR/Workspace/Homestead/.vagrant/machines/default/virtualbox/id

将此文件的内容替换为您要修复的VM的ID,在此方案中

  

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

现在尝试

homestead up

VM应该开始启动。它可能有效,或者您可能遇到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

你应该得到像

这样的东西
  

主机默认主机名127.0.0.1用户流浪者端口2222
  UserKnownHostsFile / dev / null StrictHostKeyChecking no
  PasswordAuthentication没有
  IdentityFile   “/Users/pryznar/.vagrant.d/insecure_private_key”
  身份只是的   LogLevel FATAL

修改 IdentityFile 文件

/Users/YOUR_HOME_DIR/.vagrant.d/insecure_private_key

检查Homestead.yml

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

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

cat ~/.homestead/ssh/id_rsa

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

现在尝试再次回家,应该工作。

homestead up

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

  

==&GT; default:警告:在命令行界面上使用密码可能不安全。   ==&GT;默认值:ERROR 1045(28000):拒绝访问用户'homestead'@'localhost'(使用密码:YES)SSH命令   响应为非零退出状态。 Vagrant认为这意味着   命令失败。此命令的输出应该在日志中   以上。请阅读输出以确定出现了什么问题。

答案 15 :(得分:2)

流浪者列表

流浪盒移除laravel / homestead

vagrant global-status

vagrant destroy nameOfYourBox

打开VirtualBox并删除家园中的所有内容

流浪汉

答案 16 :(得分:2)

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

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

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

Homestead change name in Virtualbox

答案 17 :(得分:2)

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

我尝试过:

  1. vagrant global-status&gt;通过id销毁您不需要或匹配的内容

  2. 打开虚拟框并删除+删除任何您不需要或有冲突的文件

  3. 什么有效:

    • 找到您的~/.vagrant/machines/~/.vagrant.d/boxes文件夹。在我的情况下,它包含冲突的vm和一堆旧的vm机器,步骤1&amp; 2由于某种原因没有删除。

    • 清除这些后,一切都恢复正常,最后!

答案 18 :(得分:1)

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

答案 19 :(得分:1)

Windows10

编辑Homestead.yaml文件并为该框指定一个新名称:

Future[Map[A, Seq[B]]]

并运行ip: "192.168.10.10" memory: 2048 cpus: 2 provider: virtualbox name: my-new-vbox #new name for the box vagrant up

在GUI中打开Virtualbx应用程序,并删除所有引起问题的virtualbox,然后运行上述命令

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

答案 20 :(得分:1)

我遇到以下错误:

错误

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命令

仅此而已,希望对您有所帮助。

致谢!

答案 21 :(得分:1)

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

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

然后继续删除宅基地文件夹。

答案 22 :(得分:0)

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

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

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

答案 23 :(得分:0)

我今天遇到了同样的问题。 Windows 10.我最近更新了Homestead,因此错误可能就是因为这个原因。我试了一下,destroyup,删除文件夹等等。每当我尝试运行vagrant up时,就会出现这种错误。解决方案?更新后,我注意到Homestead现在按项目文件夹名称命名框,而Homestead.yaml拥有所有这些信息。我只是运行那个Homestead Windows配置vendor\\bin\\homestead make,然后再运行vagrant up(在确保它全部干净之前)和voilá,看起来机器现在正在启动。 =)如果你需要的话,试试吧。

答案 24 :(得分:0)

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

答案 25 :(得分:0)

重命名已经存在的默认VM

免责声明

以下过程将破坏您的VM,并且可能仅适用于像我这样的设计环境!对于生产环境,请考虑修复关联described here

通过使用覆盖现有虚拟机的默认名称后,我遇到了这个问题

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 -f都说VM not createdvagrant up抛出此错误< / p>

  

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

删除那些僵尸VM
  1. 如果VM正在运行,请先将其停止:vboxmanage shutdown <VMName>(此处为Ubuntu-Test
  2. 通过运行vboxmanage list vms
  3. 获取ID
  4. 删除它:vboxmanage unregistervm <Id> --delete
  5. 现在可以使用vagrant up重新创建您的VM
  6. 使用vagrant global-status --prune,您的新名字已经出现

答案 26 :(得分:0)

就我而言,没有任何迹象表明VM已经存在&#34;除了那个错误信息。在VirtualBox UI上没有任何内容,“vboxmanage list vms”没有返回任何内容,没有通过“vagrant global-status”,它在“.vagrant.d \ boxes”中不存在,依此类推。我通过在VM VirtualBox Manager中手动创建一个新的同名VM来解决它(使用“新”按钮+接受所有默认值),然后将其删除(右键单击&gt;删除)。之后,“流浪汉”按预期工作。

答案 27 :(得分:0)

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

答案 28 :(得分:0)

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

答案 29 :(得分:0)

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

正在执行以下命令:

VBoxManage list vms

当它找到具有相同主机名的VM时,它将失败。

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

vagrant --debug up

找出确切的原因。

解决方案

如果您计划在不同的文件夹中使用多个虚拟机,则需要更改config.vm.hostname中的config.vm.provider(name)(可能Vagrantfile)以使其唯一。或者只是删除它,因此Vagrant将为每个VM分配一个不同的名称。

如果不是这种情况,只需通过运行以下命令关闭并取消注册之前发生冲突的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

有关

答案 30 :(得分:-1)

以上都没有为我工作。我的最终解决方案是:

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