Vagrant complains "A VirtualBox machine with the name 'homestead-7' already exists"

Vagrant complains "A VirtualBox machine with the name 'homestead-7' already exists"

Whenever I try to run this command vagrant up I am facing following error:

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

What I did, to begin with, I configured everything perfectly, means my Vagrant was working fine. I setup everything in C: drive with following directory structures.

C:/rec (contains my development Laravel code)
C:/recordings/Homestead (contains homestead files)

at that time my Yaml configuration was like this .homestead/Homestead.yaml

---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub    
keys:
    - ~/.ssh/id_rsa
folders:
    - map: C:\rec
      to: /home/vagrant/Code
sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public

Until above mentioned state, everything was working fine. But I decided to change Homestead folder to my document folder, I did this in my document

git clone https://github.com/laravel/homestead.git Homestead

This created Homestead directory in my documents like this C:\Users\SweetHome\Homestead.

I open the command line for this directory and run this command ./init.bat I created the required files in .homestead directory. But after all this, when I run vagrant up command in newly created Homestead directory, it gives me error

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

If I run vagrant up in previous/old directory C:/recordings/Homestead everything get working properly. But in new Homestead I am facing error.

Guide me on how I can get rid of older Homestead and should start working in new Homestead. I also tried to remove older Homestead directories and run vagrant up but same error

Here are some details:

$ vagrant box list
laravel/homestead (virtualbox, 1.1.0)

$ vagrant --version
Vagrant 1.9.1


$ vagrant global-status
id       name        provider   state    directory
-----------------------------------------------------------------------------
5d103ba  homestead-7 virtualbox poweroff C:/Users/SweetHome/Homestead

The above shows information about all known Vagrant environments
on this machine. This data is cached and may not be completely
up-to-date. To interact with any of the machines, you can go to
that directory and run Vagrant, or you can use the ID directly
with Vagrant commands from any directory. For example:
"vagrant destroy 1a2b3c4d"

答案1

The Vagrantfile script of Homestead attempts (by calling scripts/homestead.rb script) to create a machine with a default name of 'homestead-7'. That's why it fails, if a box with that name already exists.

You have 2 ways to solve this:

  1. Open Oracle VirtualBox and rename the existing machine (through its settings) from 'homestead-7' to any other name, and then run the vagrant up command again.
  2. Put a line of name: SomeOtherName (replace 'SomeOtherName' with what you want) in the Homestead.yaml file of the new machine, and the script will use that name instead of 'homestead-7' (it's not documented, but a look inside scripts/homestead.rb shows that it first checks for a user-defined name and uses it, otherwise, it uses the name 'homestead-7' by default: config.vm.define settings["name"] ||= "homestead-7")

答案2

Just delete the machine with the existing name: 'homestead-7' In the program VM.

$ vagrant halt

or

$ vagrant destroy

and then

$ vagrant up

You can also destroy directly in the Virtual Box program 'homestead-7' (or the one you use for the VM) and recreate it following the steps you did before.

相关内容