Já existe uma máquina VirtualBox com o nome 'homestead'


112

Desde o laravel homestead 2.0 homestead não tem funcionado

Não sei por que 'homestead init' cria um arquivo Homestead.yaml em mydirectory / .homestead e não no diretório do projeto. Homestead up OU Vagrant up crie a seguinte mensagem

Já existe uma máquina VirtualBox com o nome 'homestead'.

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.

1
Isso pode acontecer quando você deleta diretamente do sistema de arquivos sem informar o Vagrant e / ou VirtualBox. Experimente VBoxManage list vmse veja se há uma entrada fantasma / órfão / zumbi que precisa ser eliminada.
MarkHu

Para resposta específica de bem de família - veja a resposta de @TheSteed
John_911

Respostas:


276

Resolvi usando vboxmanagepara obter o ID da VM.

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

Copie o ID da VM desejada (a c700…db18string) no conteúdo de ~/.vagrant/machines/default/virtualbox/id. Salve o arquivo e execute vagrant uppara fazer o VM funcionar sem ter que destruí-lo.


22
Sua resposta deve ser aceita! Você resolveu o problema sem destruir uma máquina, como alguns outros sugeriram
Nisic Jovan

17
Apenas a nota, que, se você nomeou sua caixa de forma diferente via define(como eu), então o caminho não será ../default/ , o seu: .vagrant/machines/<box name>/virtualbox/id. #lucro!
Ian Vaughan

7
Funcionou como um encanto. Apenas curioso por que o id da minha VM mudou repentinamente e isso era necessário.
Chris

7
Em meu ambiente de desenvolvimento, o arquivo de id estava no mesmo caminho, mas na raiz do projeto. Em project-root / .vagrant / machines / default / virtualbox / id
Guillermo Maschwitz

23
Para mim, a .vagrantpasta não estava dentro, ~/mas na pasta de instalação do domicílio (ou seja, a pasta de onde você executa vagrant up)
andrewtweber

75

Para mim, a máquina não estava aparecendo como uma VM ativa no aplicativo VirtualBox. Para consertar eu tive que fazer isso:

vagrant global-status

Isso me deu a identificação da máquina que eu precisava destruir. Com o ID, execute:

vagrant destroy {VM ID}

Tive que executá-lo no sudo para realmente destruir a máquina. Nesse ponto, fui capaz de executar

vagrant up


Se sua caixa de propriedade está corrompida, mas ainda não está funcionando, esta é a resposta para você. Verificado no Ubuntu 14.02 executando VirtualBox.
Dylan Pierce

Isso é útil porque mostra o diretório de VMs do vagrant em execução
Mladen Janjetovic

O comando vagrant destroy vm_iddeve ser executado no mesmo diretório.
Amr


41

Da seguinte mensagem:

Já existe uma máquina VirtualBox com o nome ' vm_name '. Use outro nome ou exclua a máquina com o nome existente e tente novamente.

Listei as máquinas virtuais em execução na linha de comando:

VBoxManage list vms

Resultado:

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

Em seguida, procedeu à remoção da máquina virtual ofensiva:

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

8
A única resposta que mostra como excluir uma VM da linha de comando
WorldSEnder

1
Observe que isso não funcionará se o VirtualBox VM ainda estiver em execução. A VM deve ser desligada ou o comando falhará "porque a VM está bloqueada".
Noah Sussman

4
Sim e o comando seria desligado. Resumo do que funcionou para mim: vboxmanage list vms, vboxmanage controlvm <id> poweroff, vboxmanage unregistervm <id> --delete
dvsander

27

Estou um pouco atrasado para a festa nisso, mas para qualquer outra pessoa que tenha esse problema SergioPeluzzi chegou mais perto, mas não pegou o charuto com isso:

Procure por vb.name = settings ["name"] = linha "homestead" e alterou "homestead" para "HOMESTEAD" e "vói lá"

A linha é realmente:

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

Como você pode ver na parte que diz settings ["name"], você só precisa adicionar um campo de nome ao seu arquivo Homestead YAML, por exemplo

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

6
Esta é a melhor resposta se você estiver realmente instalando e usando várias instâncias do Homestead.
lintuxvi

1
Concordo com @lintuxvi que esta é a melhor resposta se você estiver trabalhando com várias instâncias de Homestead
Abdul Rahman A Samad

1
A chave é name: my-sexy-homestead-box- Obrigado!
Artistan

De longe a melhor resposta!
sdespont

16

Eu resolvi essa edição /Homestead_folder/scripts/homestead.rb

Procurei por vb.name = settings["name"] = "homestead"linha e mudei homesteadpara HOMESTEADe "vói lá" que funcionou para mim.


Esta é a melhor resposta que já vi.
Ousmane Traore

Isso funciona. Pesquise todos os registros neste arquivo vb.name = settings ['name'] e mude de acordo
ottz0


14

Eu editei Homestead.yaml e adicionei um novo nome para ele

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

Esta é a maneira correta de fazer isso. A configuração de homestead.rb primeiro procura a variável de nome em homestead.yaml
Sjshovan

Eu estava tentando fazer outra fazenda funcionar. Nunca pensei que seria tão fácil. Basta adicionar um nome em Homestead.yaml
Apit John Ismail

1
Esta deve ser a resposta aceita e mais fácil de implementar.
Casper Wilkes

9

Eu tinha um diretório .vagrant antigo em meu projeto que estava causando o erro :)

Se isso não resolver para você, eu sugiro abrir o VirtualBox e remover todos os VirtualBoxes e tentar novamente.


2
Foi isso. Depois de fazer "vagrant box update" eu tive que remover o diretório .vagrant e executar novamente o vagrant up.
ecairol

8

Eu tive o mesmo problema hoje. Gaste algumas horas para encontrar a solução. Se por algum motivo você não conseguir encontrar a lista de máquinas virtuais existentes, digite terminal

sudo virtualbox

Isso executará o Virtual Box na GUI. Você deverá ver a lista completa de VMs e, a partir daí, poderá gerenciá-los. Digitar "virtualbox" não mostra nada. Você precisa ser root (administrador).

Obrigado a mightyspaj pela dica.


1
Usando o aplicativo virtualbox normal no OS X, não consegui ver nenhuma VM em uma lista, embora me disseram que ela já existia. Então eu digitei sudo virtualbox e vi um monte de VMs e o problema foi corrigido. Obrigado.
Dwayne Charrington

Nunca use sudo com o VirtualBox. Você vai estragar as permissões
Wistar

7

Eu estava recebendo a mesma mensagem de erro, mesmo depois de executar "homestead destory" e "vagrant destroy". Da mesma forma que você, eu estava usando o provedor VirtualBox, vagrant e homestead. Aqui está o que eu fiz:

  1. GUI do VirtualBox aberta. Vejo "homestead" como uma VM, mas não consigo removê-lo, o botão está esmaecido.
  2. Saí do meu sistema operacional, entrei novamente e abri o VirtualBox. O status agora está "abortado" e posso removê-lo.
  3. Havia alguns arquivos residuais em ~/VirtualBox\ VMs/homestead, então eu corrirm -r /Users/gabriel/VirtualBox\ VMs/homestead
  4. Agora sou capaz de executar "homestead up"

6

Abri o virtualBox e excluí o vm do homestead criado anteriormente. Ajudou.


5

vagrant box list

vagrant box remove laravel / homestead

vagrant global-status

vagrant destroy nameOfYourBox

Abra seu VirtualBox e exclua todos os itens de sua propriedade

vagabundo


4

Abra a GUI do VirtualBox. Veja para sua VM e remova-a. Isso resolveu meu problema.


3

Às vezes, você pode não querer excluir a caixa antiga. Ontem, o antigo Vagrant quebrou, eu atualizei o Vagrant e o Virtualbox mas o mapeamento de pastas não funcionou. Eu queria rodar uma nova caixa e tive esse erro.

Eu não queria remover a caixa antiga (porque queria executar alguns backups), mas queria executar a nova caixa. A solução foi executar o VirtualBox, clicar com o botão direito do mouse na máquina Homestead e escolher Configurações e alterar o nome de homesteadpara homestead_old.

Depois disso, consegui instalar o homestead, mas tinha uma máquina antiga e também pude executá-la para fazer os backups necessários.

Mudança de nome de propriedade no Virtualbox


3

Se você for um usuário do Windows, certifique-se de excluir a C:\Users\<Username>\VirtualBox VMs\homesteadpasta. Porque se ainda houver uma pasta chamada homestead, a ação de vagrant upnão será concluída


1
No meu caso, eu tinha duas pastas: homestead e homestead-7. Depois de excluir ambos, o problema foi resolvido. Obrigado!
eleftrik

3

Nada disso funcionou para mim. Eu estava usando uma máquina de desenvolvimento antiga

Eu tentei:

  1. vagrant global-status> destrua qualquer um pelo idqual você não precise ou corresponda ao que está em conflito

  2. abra o virtualbox e remova + apague os arquivos desnecessários ou conflitantes

O que funcionou:

  • localize sua pasta ~/.vagrant/machines/ou ~/.vagrant.d/boxes. No meu caso, ele continha a vm conflitante e também um monte de máquinas vm antigas que as etapas 1 e 2 não removeram por algum motivo.

  • depois de limpá-los, tudo funcionou bem novamente, finalmente!


Esta é uma ótima resposta se a VM conflitante puder ser removida / limpa. Esta resposta deve ser corrigida agora que a pasta é ~/.vagrant.d/boxes/@ wired00
lintuxvi

@lintuxvi acabou de adicionar :)
wired00

Obrigado! Resolvido o problema para mim!
VivekP

2

Se você deseja manter sua máquina, sem destruir e recriar os seguintes passos deve resolver seu problema. (Eu trabalho no OS X El Captain, Vagrant 1.8.1)

Executar homestead em modo de depuração

homestead --debug up

Procure algo como na saída:

Máquina INFO: Inicializando a máquina: máquina INFO padrão: - Provedor: VagrantPlugins :: ProviderVirtualBox :: Máquina INFO do provedor: - Caixa: # máquina INFO: - Diretório de dados: /Users/YOUR_HOME_DIR/Workspace/Homestead/.vagrant/machines/default/ caixa virtual

Diretório de dados , é o caminho que é interessante para você.

Então vboxmanage list vms

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

Edite o arquivo de id , no caminho que você encontrou no comando anterior

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

Substitua o conteúdo desse arquivo, pelo id da VM que você deseja corrigir, neste cenário é

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

Agora tente

homestead up

VM deve iniciar a inicialização. Pode funcionar, ou você pode ter problemas com a autenticação 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...

Para corrigir isso, siga as instruções de Check Homestead SSH config

homestead ssh-config

Você deve conseguir algo como

Host default HostName 127.0.0.1 Usuário vagrant Porta 2222
UserKnownHostsFile / dev / null StrictHostKeyChecking não
PasswordAuthentication no
IdentityFile "/Users/pryznar/.vagrant.d/insecure_private_key"
IdentidadesSomente sim LogLevel FATAL

Editar arquivo IdentityFile

/Users/YOUR_HOME_DIR/.vagrant.d/insecure_private_key

Verifique Homestead.yml

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

Em seguida, copie o caminho para o arquivo nas chaves de chave e copie a chave privada desse arquivo

cat ~/.homestead/ssh/id_rsa

A última etapa é substituir a chave privada em /Users/YOUR_HOME_DIR/.vagrant.d/insecure_private_key pela que você acabou de copiar

Agora tente rung homestead novamente, deve funcionar.

homestead up

Recebi alguns avisos, mas até agora funciona sem problemas

==> padrão: Aviso: Usar uma senha na interface da linha de comando pode ser inseguro. ==> padrão: ERROR 1045 (28000): Acesso negado para o usuário 'homestead' @ 'localhost' (usando a senha: SIM) O comando SSH respondeu com um status de saída diferente de zero. O Vagrant assume que isso significa que o comando falhou. A saída para este comando deve estar no log acima. Leia a saída para determinar o que deu errado.


2

Você pode abrir a GUI do VirtualBox e remover a máquina virtual em conflito.


1

No meu caso, o artigo a seguir fornece a solução. Havia uma pasta chamada homestead dentro do caminho / var / root / VirtualBox VMs / que estava causando o problema. Depois que essa pasta foi removida, rm -r homestead , o problema foi resolvido. Se você não puder ver ou ter acesso a este caminho, execute os seguintes comandos nas janelas do seu terminal:

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

E prossiga para deletar a pasta da herdade .


1

Eu tive o seguinte erro:

Erro :

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.

Solução :

  • Encontre a pasta VMS do VirtualBox , no meu caso estava em~/VirtualBox VMs
  • Liste os elementos na pasta com o lscomando e analise se a máquina virtual está lá
  • Exclua a pasta com o nome da máquina, no meu caso homestead-7
  • Reexecute o vagrant upcomando na pasta do domicílio

Só isso, espero que ajude, essa foi a minha solução.

Saudações!


0

Depois de algumas horas de solução de problemas, nada mais funcionou para mim, pois ninguém mencionou esse pequeno detalhe.

Dependendo dos seus privilégios no momento da instalação, pode ser necessário executar o virtualbox como administrador. Foi só quando fiz isso que vi minhas caixas vagrant na lista de máquinas virtuais.

Em seguida, comecei a remover minha máquina virtual nomeada homesteaddo virtualbox e o problema foi resolvido.


0

Se você estiver usando homestead no Windows, basta abrir seu Oracle VM VirtualBox e excluir a homesteadVM.


0

O Vagrant depende do VirtualBox (se for o provedor padrão), portanto, ele verifica primeiro o ambiente existente antes de provisionar sua VM.

Ele está executando o seguinte comando:

VBoxManage list vms

e quando encontra a VM com o mesmo nome de host, então ele falhará.

Você pode depurá-lo por:

vagrant --debug up

para descobrir o motivo exato.


Solução

Se estiver planejando usar várias VMs em pastas diferentes, você precisará alterar o seu config.vm.hostname(possivelmente config.vm.provider(name)também) no seu Vagrantfilepara torná-lo único. Ou simplesmente remova-o, para que o Vagrant atribua um nome diferente para cada VM.

Se não for esse o caso, simplesmente desligue e cancele o registro da VM anterior que está em conflito executando:

VBoxManage controlvm NAMEOFVM poweroff
VBoxManage unregistervm NAMEOFVM --delete

e execute novamente o seu vagrant up.

Se falhar na renomeação do diretório (porque você perdeu --delete), renomeie ou remova a pasta de destino , por exemplo:

rm -fr ~/"VirtualBox VMs/NAMEOFVM"

e tente novamente.


Esse problema pode estar relacionado a: Problema no GitHub nº 2969 - vagrant não detecta uma VM executada anteriormente


0

No meu caso, nada indicava que a VM "já existe" além daquela mensagem de erro. Nada na IU do VirtualBox, nada retornado por “vboxmanage list vms”, nada por meio de “vagrant global-status”, não existia em “.vagrant.d \ boxes” e assim por diante. Resolvi isso criando manualmente uma nova VM com o mesmo nome no VM VirtualBox Manager (usando o botão “novo” + aceitando todos os padrões) e removendo-a (clique com o botão direito> remover). Depois disso, o “vagabundo” funcionou conforme o esperado.


0

Eu tive o mesmo problema hoje. Windows 10. Recentemente, atualizei Homestead, então o erro provavelmente foi por causa disso. Eu tentei tudo, destroy, up, pastas de exclusão, seja qual for. Sempre que tentava rodar vagrant up, estava apresentando esse tipo de erros. A solução? Depois de atualizar, percebi que Homestead agora está nomeando as caixas pelo nome da pasta do projeto e Homestead.yaml tem todas essas informações. Acabei de rodar aquela configuração do Homestead do Windows vendor\\bin\\homestead makee depois deles um vagrant up(antes de garantir que estava tudo limpo) e voilá, parece que a máquina está inicializando agora. =) Experimente se precisar.


0

Adicione --forcedepois da caixa e antes do seu nome.


2
Por favor edite sua resposta para explicar por que você acha que esta solução irá funcionar, o que ele faz e como. Também vale a pena formalizar seu inglês (embora eu compreenda que inglês provavelmente não é sua primeira língua), embora eu editei sua resposta para corrigir e organizar isso.
David diz para restabelecer Monica em

0

Renomeando uma VM padrão já existente

aviso Legal

O procedimento a seguir destruirá sua VM e pode ser adequado apenas em um ambiente desting como o meu! Para ambientes de produção, considere reparar a associação conforme descrito aqui

Tive este problema depois de substituir o nome padrão de uma VM já existente usando

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

onde o nome do VirtualBox também foi definido (como um novato, presumi que o Vagrand também usará esse nome)

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

Ao adicionar config.vm.defineparece que o Vagrant não associa mais o VirtualBox VM com o arquivo do Vagrant, já que até vagrant destroy -fdiga VM not createdmas vagrant upjogue este erro

Já existe uma máquina VirtualBox com o nome 'Ubuntu-Test'.

Para deletar aquelas VMs zumbis
  1. Se a VM estiver em execução, pare-a primeiro: vboxmanage shutdown <VMName>(aqui o nome éUbuntu-Test )
  2. Obtenha o Id executando vboxmanage list vms
  3. Delete isso: vboxmanage unregistervm <Id> --delete
  4. Agora sua VM pode ser recriada usando vagrant up
  5. Usando vagrant global-status --prune, seu novo nome está presente

0

Para mim, o arquivo de id estava presente no local mencionado abaixo. D: \ drupalvm.vagrant \ machines \ drupalvm \ virtualbox


0

Windows10

Edite o arquivo Homestead.yaml e dê um novo nome para a caixa:

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

e correr vagrant upouvagrant up --provision

Ou

Abra o aplicativo Virtualbx na GUI e exclua todo o virtualbox que estava causando o problema e execute o comando acima

Ou

Exclua o arquivo "Vagrant" dentro da pasta homestead e execute o comando acima.


0

Você só precisa adicionar a chave nameao seu homestead.yamlarquivo logo após o provedor, desta forma:

name: name_of_you_machine

Isso funciona para mim.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.