Esiste già una macchina VirtualBox con il nome "homestead"


112

Dal momento che Homestead 2.0 Homestead Laravel non ha funzionato

Non so perché "homestead init" crea un file Homestead.yaml in mydirectory / .homestead e non nella directory del progetto. Homestead up OPPURE Vagrant up crea il seguente messaggio

Esiste già una macchina VirtualBox con il 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
Questo può accadere quando elimini direttamente dal filesystem senza informare Vagrant e / o VirtualBox. Prova a VBoxManage list vmsvedere se c'è una voce fantasma / orfano / zombi che deve essere cancellata.
MarkHu

Per la risposta specifica della fattoria - vedi la risposta di @TheSteed
John_911

Risposte:


276

Ho risolto utilizzando vboxmanageper ottenere l'ID della VM.

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

Copia l'ID della VM desiderata (la c700…db18stringa) nel contenuto di ~/.vagrant/machines/default/virtualbox/id. Salvare il file quindi eseguire vagrant upper far funzionare la VM senza doverlo distruggere.


22
La tua risposta dovrebbe essere accettata! Hai risolto il problema senza distruggere una macchina, come altri suggerivano
Nisic Jovan

17
Giusto per nota, che se hai chiamato la tua casella di diverso tramite define(come me), allora il percorso non sarà ../default/ , la sua: .vagrant/machines/<box name>/virtualbox/id. #profitto!
Ian Vaughan

7
Ha funzionato come un fascino. Sono solo curioso del motivo per cui l'id del mio VM è cambiato improvvisamente e questo era necessario.
Chris

7
Nel mio ambiente di sviluppo, il file id si trovava sullo stesso percorso, ma nella radice del progetto. At project-root / .vagrant / machines / default / virtualbox / id
Guillermo Maschwitz

23
Per me la .vagrantcartella non era dentro ~/ma nella cartella di installazione homestead (cioè la cartella da cui esegui vagrant up)
andrewtweber

75

Per me, la macchina non veniva visualizzata come VM attiva nell'applicazione VirtualBox. Per risolvere ho dovuto fare questo:

vagrant global-status

Questo mi ha dato l'ID della macchina che dovevo distruggere. Con l'ID, esegui:

vagrant destroy {VM ID}

Ho dovuto eseguirlo in sudo per distruggere effettivamente la macchina. A quel punto, sono stato in grado di correre

vagrant up


Se la tua casella di fattoria è danneggiata, non è già in esecuzione, questa è la risposta per te. Verificato su Ubuntu 14.02 con VirtualBox.
Dylan Pierce

Questo è utile perché ti mostra la directory di esecuzione di VM vaganti
Mladen Janjetovic,

Il comando vagrant destroy vm_iddeve essere eseguito dalla stessa directory.
Amr


41

Dal messaggio seguente:

Esiste già una macchina VirtualBox con il nome " vm_name ". Utilizzare un altro nome o eliminare la macchina con il nome esistente e riprovare.

Ho elencato le macchine virtuali in esecuzione dalla riga di comando:

VBoxManage list vms

Risultato:

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

Quindi si è proceduto alla rimozione della macchina virtuale incriminata:

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

8
L'unica risposta che mostra come eliminare una VM dalla riga di comando
WorldSEnder

1
Nota che questo non funzionerà se la VM VirtualBox è ancora in esecuzione. La VM deve essere arrestata altrimenti il ​​comando fallirà "perché la VM è bloccata".
Noah Sussman

4
Sì e il comando sarebbe spento. Riepilogo di ciò che ha funzionato per me: vboxmanage list vms, vboxmanage controlvm <id> poweroff, vboxmanage unregistervm <id> --delete
dvsander

27

Sono un po 'in ritardo alla festa su questo, ma per chiunque altro abbia questo problema SergioPeluzzi si è avvicinato di più, ma non ha ottenuto il sigaro con questo:

Cerca vb.name = settings ["name"] = riga "homestead" e cambia "homestead" in "HOMESTEAD" e "vói lá"

La linea è in realtà:

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

Come puoi vedere dal bit che dice impostazioni ["nome"], devi solo aggiungere un campo nome al tuo file YAML di Homestead, ad es.

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

6
Questa è la risposta migliore se stai effettivamente installando e utilizzando più istanze di Homestead.
lintuxvi

1
Sono d'accordo con @lintuxvi, questa è la risposta migliore se stai lavorando con più istanze di Homestead
Abdul Rahman A Samad

1
La chiave è name: my-sexy-homestead-box: grazie!
Artistan

Di gran lunga la migliore risposta!
sdespont

16

Ho risolto questa modifica /Homestead_folder/scripts/homestead.rb

Cerca la vb.name = settings["name"] = "homestead"linea e ho cambiato homesteadin HOMESTEADe "vói lá" che ha funzionato per me.


Questa è la migliore risposta che ho visto.
Ousmane Traore

Funziona. Cerca in questo file tutti i record vb.name = settings ['nome'] e modifica di conseguenza
ottz0


14

Ho modificato Homestead.yaml e gli ho aggiunto un nuovo nome

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

Questo è il modo corretto per farlo. homestead.rb config cerca prima la variabile del nome in homestead.yaml
Sjshovan

Stavo cercando di far funzionare un'altra fattoria. Non avrei mai pensato che sarebbe stato così facile. Basta aggiungere un nome in Homestead.yaml
Apit John Ismail

1
Questa dovrebbe essere davvero la risposta accettata e più facile da implementare.
Casper Wilkes

9

Avevo una vecchia directory .vagrant nel mio progetto che causava l'errore :)

Se questo non lo risolve per te, suggerirei di aprire VirtualBox e rimuovere tutti i VirtualBox e riprovare.


2
Questo è tutto. Dopo aver eseguito l '"aggiornamento della scatola vagabonda" ho dovuto rimuovere quella directory .vagrant e rieseguire vagrant up.
ecairol

8

Oggi ho avuto lo stesso problema. Passa qualche ora per trovare la soluzione. Se per qualsiasi motivo non riesci a trovare l'elenco delle macchine virtuali in uscita, digita terminal

sudo virtualbox

Questo eseguirà Virtual Box nella GUI. Dovresti vedere l'elenco completo delle VM e da lì sarai in grado di gestirle. Digitando solo "virtualbox" non verrà mostrato nulla. Devi essere root (amministratore).

Grazie a mightyspaj per la punta.


1
Utilizzando la normale app virtualbox su OS X, non sono riuscito a vedere nessuna VM in un elenco anche se mi è stato detto che esisteva già. Quindi ho digitato sudo virtualbox e ho visto un intero mucchio di VM e il problema è stato risolto. Grazie.
Dwayne Charrington

Non usare mai sudo con VirtualBox. Stai per rovinare i permessi
Wistar

7

Stavo ricevendo lo stesso messaggio di errore, anche dopo aver eseguito "Homestead Destory" e "Vagrant Destory". Come te, stavo usando il provider VirtualBox, vagrant e homestead. Ecco cosa ho fatto:

  1. GUI di VirtualBox aperta. Vedo "homestead" come VM, ma non riesco a rimuoverlo, il pulsante è disattivato.
  2. Mi sono disconnesso dal mio sistema operativo, sono tornato indietro e ho riaperto VirtualBox. Lo stato è ora "interrotto" e posso rimuoverlo.
  3. C'erano alcuni file residui ~/VirtualBox\ VMs/homestead, quindi ho eseguitorm -r /Users/gabriel/VirtualBox\ VMs/homestead
  4. Ora sono in grado di eseguire "Homestead Up"

6

Ho aperto il virtualBox e quindi ho eliminato Homestead VM creato in precedenza. Ha aiutato.


5

box list vagabondo

scatola vagabonda rimuovere laravel / fattoria

status globale vagabondo

vagabondo distrugge nameOfYourBox

Apri il tuo VirtualBox ed elimina tutti gli elementi della tua fattoria

vagabondare


4

Apri la GUI di VirtualBox. Verifica la tua VM e rimuovila. Ha risolto il mio problema.


3

A volte potresti non voler eliminare la vecchia scatola. Ieri il vecchio Vagrant si è rotto, ho aggiornato Vagrant e Virtualbox ma la mappatura delle cartelle non ha funzionato. Volevo eseguire una nuova scatola e ho riscontrato questo errore.

Non volevo rimuovere la vecchia scatola (perché volevo eseguire alcuni backup) ma volevo eseguire la nuova scatola. La soluzione stava eseguendo VirtualBox, fai clic con il pulsante destro del mouse sulla macchina Homestead e scegli Impostazioni, quindi cambia il nome da homesteada homestead_old.

Dopodiché sono stato in grado di installare Homestead ma avevo questa vecchia macchina e potevo anche eseguirla per fare i backup di cui avevo bisogno.

Homestead cambia nome in Virtualbox


3

Se sei un utente Windows, assicurati di eliminare la C:\Users\<Username>\VirtualBox VMs\homesteadcartella. Perché se esiste ancora una cartella denominata homestead, l'azione di vagrant upnon verrà completata


1
Nel mio caso, avevo due cartelle: Homestead e Homestead-7. Dopo aver eliminato entrambi, il problema è stato risolto. Grazie!
eleftrik

3

Niente di tutto questo ha funzionato per me. Stavo usando una vecchia macchina di sviluppo

Ho provato:

  1. vagrant global-status> distruggere quelli di idcui non hai bisogno o abbinare ciò che è in conflitto

  2. apri virtualbox e rimuovi + elimina i file per quelli che non ti servono o che sono in conflitto

Cosa ha funzionato:

  • individua la tua cartella ~/.vagrant/machines/o ~/.vagrant.d/boxes. Nel mio caso, conteneva il vm in conflitto e anche un mucchio di vecchie macchine vm rimaste che i passaggi 1 e 2 non hanno rimosso per qualche motivo.

  • dopo averli cancellati, finalmente tutto ha funzionato di nuovo bene!


Questa è un'ottima risposta se la VM in conflitto può essere rimossa / cancellata. Questa risposta dovrebbe essere modificata ora che la cartella è ~/.vagrant.d/boxes/@ wired00
lintuxvi

@lintuxvi ha appena aggiunto :)
wired00

Grazie! Ha risolto il problema per me!
VivekP

2

Se vuoi mantenere la tua macchina, senza distruggere e ricreare i seguenti passaggi dovresti risolvere il tuo problema. (Lavoro su OS X El Captain, Vagrant 1.8.1)

Esegui Homestead in modalità debug

homestead --debug up

Cerca qualcosa di simile nell'output:

Macchina INFO: Macchina inizializzata: macchina INFO predefinita: - Provider: VagrantPlugins :: ProviderVirtualBox :: Macchina INFO provider: - Box: # Macchina INFO: - Data dir: /Users/YOUR_HOME_DIR/Workspace/Homestead/.vagrant/machines/default/ virtualbox

Data dir , è il percorso che ti interessa.

Poi vboxmanage list vms

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

Modifica il file id , nel percorso che hai scoperto nel comando precedente

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

Sostituisci il contenuto di quel file, con l'id della VM che vuoi riparare, in questo scenario lo è

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

Adesso prova

homestead up

La VM dovrebbe iniziare ad avviarsi. Potrebbe funzionare o potresti avere problemi con l'autenticazione 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...

Per risolvere il problema, segui la configurazione di Homestead SSH

homestead ssh-config

Dovresti ottenere qualcosa di simile

Host predefinito HostName 127.0.0.1 User
vagrant Port 2222 UserKnownHostsFile / dev / null StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile "/Users/pryznar/.vagrant.d/insecure_private_key"
IdentitiesOnly yes LogLevel FATAL

Modifica il file IdentityFile

/Users/YOUR_HOME_DIR/.vagrant.d/insecure_private_key

Controlla Homestead.yml

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

Quindi copiare il percorso del file sotto la chiave chiavi , e copiare la chiave privata da quel file

cat ~/.homestead/ssh/id_rsa

L'ultimo passaggio è sostituire la chiave privata in /Users/YOUR_HOME_DIR/.vagrant.d/insecure_private_key con quella che hai appena copiato

Ora prova di nuovo a rung homestead, dovrebbe funzionare.

homestead up

Ho ricevuto alcuni avvisi, ma finora funziona senza problemi

==> predefinito: Avviso: l'utilizzo di una password sull'interfaccia della riga di comando può non essere sicuro. ==> predefinito: ERRORE 1045 (28000): Accesso negato per l'utente 'homestead' @ 'localhost' (utilizzando la password: YES) Il comando SSH ha risposto con uno stato di uscita diverso da zero. Vagrant presume che questo significhi che il comando non è riuscito. L'output di questo comando dovrebbe essere nel registro sopra. Si prega di leggere l'output per determinare cosa è andato storto.


2

Puoi aprire la GUI di VirtualBox e rimuovere la macchina virtuale in conflitto.


1

Nel mio caso il seguente articolo fornisce la soluzione. C'era una cartella denominata homestead all'interno del percorso / var / root / VirtualBox VMs / che stava causando il problema. Una volta rimossa questa cartella, rm -r homestead , il problema è stato risolto. Se non puoi vedere o avere accesso a questo percorso, esegui i seguenti comandi nelle finestre del tuo terminale:

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

E procedi con l'eliminazione della cartella homestead .


1

Ho avuto il seguente errore:

Errore :

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.

Soluzione :

  • Trova la cartella VMS di VirtualBox , nel mio caso era in~/VirtualBox VMs
  • Elenca gli elementi nella cartella con il lscomando e controlla se la macchina virtuale è presente
  • Elimina la cartella con il nome della macchina, nel mio caso homestead-7
  • Riesegui il vagrant upcomando nella cartella Homestead

Questo è tutto, spero sia utile, quella era la mia soluzione.

Saluti!


0

Dopo alcune ore di risoluzione dei problemi, nient'altro ha funzionato per me, poiché nessuno ha menzionato questo piccolo dettaglio.

A seconda dei tuoi privilegi al momento dell'installazione, potresti dover eseguire virtualbox come amministratore. È stato solo quando l'ho fatto che ho visto le mie scatole vagabonde nell'elenco delle macchine virtuali.

Ho quindi proceduto a rimuovere la mia macchina virtuale denominata homesteadda virtualbox e il problema è stato risolto.


0

Se stai usando Homestead in Windows, apri semplicemente Oracle VM VirtualBox ed elimina la homesteadVM.


0

Il Vagrant si basa su VirtualBox (se questo è il provider predefinito), quindi controlla l'ambiente esistente prima di eseguire il provisioning della VM.

Sta eseguendo il seguente comando:

VBoxManage list vms

e quando trova la VM con lo stesso nome host, fallirà.

Puoi eseguirne il debug:

vagrant --debug up

per scoprire il motivo esatto.


Soluzione

Se hai intenzione di utilizzare più VM in cartelle diverse, devi cambiare il tuo config.vm.hostname(possibilmente config.vm.provider(name)anche) nel tuo Vagrantfileper renderlo unico. O semplicemente rimuovilo, così Vagrant assegnerà un nome diverso a ciascuna VM.

In caso contrario, è sufficiente arrestare e annullare la registrazione della VM precedente in conflitto eseguendo:

VBoxManage controlvm NAMEOFVM poweroff
VBoxManage unregistervm NAMEOFVM --delete

e riesegui il tuo vagrant up .

Se non riesce a rinominare la directory (perché ti sei perso --delete), rinomina o rimuovi la cartella di destinazione , ad esempio:

rm -fr ~/"VirtualBox VMs/NAMEOFVM"

e riprova.


Questo problema potrebbe essere correlato a: GitHub problema # 2969 - vagabondaggio non rileva una VM eseguita in precedenza


0

Nel mio caso, nulla indicava che la VM "già esiste" oltre a quel messaggio di errore. Niente sull'interfaccia utente di VirtualBox, niente restituito da "vboxmanage list vms", niente tramite "vagrant global-status", non esisteva in ".vagrant.d \ boxes" e così via. L'ho risolto creando manualmente una nuova VM omonima nel VM VirtualBox Manager (utilizzando il pulsante "nuovo" + accettando tutte le impostazioni predefinite), e quindi rimuovendola (clic destro> rimuovi). Dopo di che, il "vagabondo" ha funzionato come previsto.


0

Oggi ho avuto lo stesso problema. Windows 10. Recentemente ho aggiornato Homestead, quindi l'errore era probabilmente dovuto a questo. Ho provato tutto, destroy, up, cartelle di eliminazione, qualsiasi cosa. Ogni volta che ho provato a eseguire vagrant up, mostrava questo tipo di errori. La soluzione? Dopo l'aggiornamento, ho notato che Homestead ora nomina le caselle con il nome della cartella del progetto e Homestead.yaml ha tutte quelle informazioni. Ho appena eseguito quella configurazione di Homestead di Windows vendor\\bin\\homestead makee successivamente una vagrant up(prima di assicurarmi che fosse tutto pulito) e voilà, sembra che la macchina si stia avviando ora. =) Provalo se ne hai bisogno.


0

Aggiungi --forcedopo la casella e prima del tuo nome.


2
Si prega di modificare la risposta per spiegare il motivo per cui si pensa di questa soluzione funziona, cosa fa e come. Inoltre vale la pena formalizzare il tuo inglese (anche se apprezzo che l'inglese probabilmente non è la tua prima lingua), anche se ho modificato la tua risposta per correggerla e riordinarla.
David dice di reintegrare Monica il

0

Ridenominazione di una VM predefinita già esistente

disconoscimento

La seguente procedura distruggerà la tua VM e potrebbe essere adatta solo in un ambiente di desting come il mio! Per gli ambienti di produzione, considerare di riparare l'associazione come descritto qui

Ho avuto questo problema dopo aver sovrascritto il nome predefinito di una VM già esistente utilizzando

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

dove è stato impostato anche il nome di VirtualBox (da principiante ho pensato che anche Vagrand userà questo nome)

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

Aggiungendo config.vm.definesembra che Vagrant non associ più la VM di VirtualBox al file Vagrant poiché anche vagrant destroy -fVM not createdma vagrant uplancia questo errore

Esiste già una macchina VirtualBox con il nome "Ubuntu-Test".

Per eliminare quelle VM zombie
  1. Se la VM è in esecuzione, interrompila prima: vboxmanage shutdown <VMName>(qui il nome èUbuntu-Test )
  2. Ottieni l'ID correndo vboxmanage list vms
  3. Cancellalo: vboxmanage unregistervm <Id> --delete
  4. Ora la tua VM può essere ricreata usando vagrant up
  5. Usando vagrant global-status --prune, il tuo nuovo nome è presente

0

Per me il file id era presente nella posizione indicata di seguito. D: \ drupalvm.vagrant \ macchine \ drupalvm \ virtualbox


0

Windows 10

Modifica il file Homestead.yaml e assegna un nuovo nome alla scatola:

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

e corri vagrant upovagrant up --provision

O

Apri l'applicazione Virtualbx nella GUI ed elimina tutta la virtualbox che causava il problema ed esegui il comando precedente

O

Elimina il file "Vagrant" nella cartella Homestead ed esegui il comando precedente.


0

Devi solo aggiungere la chiave nameal tuo homestead.yamlfile subito dopo il provider in questo modo:

name: name_of_you_machine

Per me va bene.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.