Une machine VirtualBox avec le nom «homestead» existe déjà


112

Depuis le homestead 2.0, le homestead laravel ne fonctionne plus

Je ne sais pas pourquoi 'homestead init' crée un fichier Homestead.yaml dans mon répertoire / .homestead et non dans le répertoire du projet. Homestead up OU Vagrant up créer le message suivant

Une machine VirtualBox avec le nom «homestead» existe déjà.

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
Cela peut se produire lorsque vous supprimez directement du système de fichiers sans en informer Vagrant et / ou VirtualBox. Essayez de VBoxManage list vmsvoir s'il y a une entrée fantôme / orphelin / zombie qui doit être effacée.
MarkHu du

Pour une réponse spécifique à la propriété familiale - voir la réponse de @TheSteed
John_911

Réponses:


276

J'ai résolu en utilisant vboxmanagepour obtenir l'ID de la VM.

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

Copiez l'ID de la VM souhaitée (la c700…db18chaîne) dans le contenu de ~/.vagrant/machines/default/virtualbox/id. Enregistrez le fichier puis exécutez vagrant uppour faire fonctionner la VM sans avoir à le détruire.


22
Votre réponse doit être acceptée! Vous avez résolu le problème sans détruire une machine, comme certains l'ont suggéré
Nisic Jovan

17
Juste à noter, que si vous avez nommé votre boîte différemment par define(comme moi), le chemin ne sera pas ../default/ , son: .vagrant/machines/<box name>/virtualbox/id. #profit!
Ian Vaughan

7
A fonctionné comme un charme. Je suis juste curieux de savoir pourquoi l'identifiant de ma vm a soudainement changé et cela était nécessaire du tout.
Chris

7
Dans mon environnement de développement, le fichier id était sur le même chemin, mais à la racine du projet. À la racine du projet / .vagrant / machines / default / virtualbox / id
Guillermo Maschwitz

23
Pour moi, le .vagrantdossier n'était pas dans ~/mais dans le dossier d'installation de la ferme (c'est-à-dire le dossier à vagrant uppartir
duquel

75

Pour moi, la machine ne s'affichait pas comme une VM active dans l'application VirtualBox. Pour réparer, je devais faire ceci:

vagrant global-status

Cela m'a donné l'ID de la machine que je devais détruire. Avec l'ID, exécutez:

vagrant destroy {VM ID}

J'ai dû exécuter cela dans sudo pour détruire réellement la machine. À ce moment-là, j'ai pu courir

vagrant up


Si votre boîte à ferme est corrompue, pas déjà en cours d'exécution, c'est la réponse pour vous. Vérifié sur Ubuntu 14.02 exécutant VirtualBox.
Dylan Pierce

Ceci est utile car il vous montre le répertoire des VM vagrant en cours d'exécution
Mladen Janjetovic

La commande vagrant destroy vm_iddoit être exécutée à partir du même répertoire.
Amr


41

Du message suivant:

Une machine VirtualBox avec le nom ' vm_name ' existe déjà. Veuillez utiliser un autre nom ou supprimer la machine avec le nom existant et réessayer.

J'ai répertorié les machines virtuelles en cours d'exécution à partir de la ligne de commande:

VBoxManage list vms

Résultat :

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

Puis a procédé à la suppression de la machine virtuelle incriminée:

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

8
La seule réponse qui montre comment supprimer une machine virtuelle de la ligne de commande
WorldSEnder

1
Notez que cela ne fonctionnera pas si la VM VirtualBox est toujours en cours d'exécution. La VM doit être arrêtée, sinon la commande échouera «car la VM est verrouillée».
Noah Sussman

4
Oui et la commande serait mise hors tension. Résumé de ce qui a fonctionné pour moi: vboxmanage list vms, vboxmanage controlvm <id> poweroff, vboxmanage unregistervm <id> --delete
dvsander

27

Je suis un peu en retard à la fête à ce sujet, mais pour toute personne ayant ce problème, SergioPeluzzi s'est approché le plus près, mais n'a pas eu le cigare avec ceci:

Cherchez la ligne vb.name = settings ["name"] = "homestead" et remplacez "homestead" par "HOMESTEAD" et "vói lá"

La ligne est en fait:

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

Comme vous pouvez le voir dans le bit qui indique les paramètres ["nom"], il vous suffit d'ajouter un champ de nom à votre fichier Homestead YAML, par exemple

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

6
C'est la meilleure réponse si vous installez et utilisez réellement plusieurs instances Homestead.
lintuxvi

1
Je suis d'accord avec @lintuxvi, c'est la meilleure réponse si vous travaillez avec plusieurs instances Homestead
Abdul Rahman A Samad

1
La clé est name: my-sexy-homestead-box- Merci!
Artistan

Loin la meilleure réponse!
sdespont

16

J'ai résolu cette édition /Homestead_folder/scripts/homestead.rb

Cherchez la vb.name = settings["name"] = "homestead"ligne et changé homesteaden HOMESTEADet "vói lá" qui a fonctionné pour moi.


C'est la meilleure réponse que j'ai vue.
Ousmane Traore

Cela marche. Recherchez dans ce fichier tous les enregistrements vb.name = settings ['name'] et modifiez
conséquence


14

J'ai édité Homestead.yaml et j'y ai ajouté un nouveau nom

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

C'est la bonne façon de procéder. homestead.rb config recherche d'abord la variable de nom dans homestead.yaml
Sjshovan

J'essayais de faire fonctionner une autre ferme. Jamais pensé que ce serait aussi simple. Ajoutez simplement un nom dans Homestead.yaml
Apit John Ismail

1
Cela devrait vraiment être la réponse acceptée et la plus simple à mettre en œuvre.
Casper Wilkes

9

J'avais un ancien répertoire .vagrant dans mon projet qui causait l'erreur :)

Si cela ne résout pas le problème pour vous, je suggérerais d'ouvrir VirtualBox et de supprimer toutes les VirtualBox et de réessayer.


2
C'était ça. Après avoir fait "la mise à jour de la boîte de vagabond", j'ai dû supprimer ce répertoire .vagrant et relancer vagrant.
ecairol

8

J'ai eu le même problème aujourd'hui. Passez quelques heures à trouver la solution. Si, pour une raison quelconque, vous ne trouvez pas la liste des machines virtuelles existantes, saisissez terminal

sudo virtualbox

Cela exécutera Virtual Box dans l'interface graphique. Vous devriez voir la liste complète des VM et à partir de là, vous pourrez les gérer. Taper "virtualbox" ne montrera rien. Vous devez être root (administrateur).

Merci à mightyspaj pour le tuyau.


1
En utilisant l'application virtualbox standard sur OS X, je ne pouvais voir aucune VM dans une liste même si on m'avait dit qu'elle existait déjà. Ensuite, j'ai tapé sudo virtualbox et j'ai vu tout un tas de VM et le problème a été résolu. Je vous remercie.
Dwayne Charrington

N'utilisez jamais sudo avec VirtualBox. Vous allez bousiller les autorisations
Wistar

7

Je recevais le même message d'erreur, même après avoir exécuté "homestead destory" et "vagrant destroy". Comme vous, j'utilisais le fournisseur VirtualBox, vagrant et homestead. Voici ce que j'ai fait:

  1. Ouverture de l'interface graphique de VirtualBox. Je vois "homestead" comme une VM, mais je ne peux pas le supprimer, le bouton est grisé.
  2. Je me suis déconnecté de mon système d'exploitation, je me suis reconnecté et j'ai rouvert VirtualBox. Le statut est maintenant "abandonné" et je peux le supprimer.
  3. Il y avait des fichiers résiduels ~/VirtualBox\ VMs/homestead, alors j'ai coururm -r /Users/gabriel/VirtualBox\ VMs/homestead
  4. Je suis maintenant en mesure de gérer "homestead up"

6

J'ai ouvert la virtualBox, puis j'ai supprimé la vm homestead créée précédemment. Ça m'a aidé.


5

liste de boîte de vagabond

boîte de vagabond supprimer laravel / homestead

statut global de vagabond

vagrant détruire nameOfYourBox

Ouvrez votre VirtualBox et supprimez tous les itens de votre propriété

vagabonder


4

Ouvrez l'interface graphique de VirtualBox. Recherchez votre VM et supprimez-la. Cela a résolu mon problème.


3

Parfois, vous pouvez ne pas vouloir supprimer l'ancienne boîte. Hier, le vieux Vagrant s'est cassé, j'ai mis à jour Vagrant et Virtualbox mais le mappage des dossiers n'a pas fonctionné. Je voulais exécuter une nouvelle boîte et j'ai eu cette erreur.

Je ne voulais pas supprimer l'ancienne boîte (parce que je voulais exécuter des sauvegardes) mais je voulais exécuter une nouvelle boîte. La solution exécutait VirtualBox, cliquez avec le bouton droit sur la machine Homestead et choisissez Paramètres, puis changez le nom de homesteadà homestead_old.

Après cela, j'ai pu installer Homestead mais j'avais cette vieille machine et je pouvais également l'exécuter pour faire toutes les sauvegardes dont j'avais besoin.

Homestead change de nom dans Virtualbox


3

Si vous êtes un utilisateur Windows, assurez-vous de supprimer le C:\Users\<Username>\VirtualBox VMs\homesteaddossier. Car s'il existe encore un dossier nommé homestead, l'action de vagrant upne sera pas terminée


1
Dans mon cas, j'avais deux dossiers: homestead et homestead-7. Après avoir supprimé les deux, le problème est résolu. Merci!
eleftrik

3

Rien de tout cela n'a fonctionné pour moi. J'utilisais une vieille machine de développement

J'ai tenté:

  1. vagrant global-status> détruisez tout idce dont vous n'avez pas besoin ou faites correspondre ce qui est en conflit

  2. ouvrez virtualbox et supprimez + supprimez les fichiers dont vous n'avez pas besoin ou sont en conflit

Ce qui a fonctionné:

  • localisez votre dossier ~/.vagrant/machines/ou ~/.vagrant.d/boxes. Dans mon cas, il contenait le vm en conflit et aussi un tas d'anciennes machines vm restantes que les étapes 1 et 2 n'ont pas supprimées pour une raison quelconque.

  • après avoir effacé ces derniers, tout a fonctionné à nouveau bien, enfin!


C'est une excellente réponse si la machine virtuelle en conflit peut être supprimée / effacée. Cette réponse doit être modifiée maintenant que le dossier est ~/.vagrant.d/boxes/@ wired00
lintuxvi

@lintuxvi vient d'ajouter :)
wired00

Merci! Résolu le problème pour moi!
VivekP

2

Si vous souhaitez conserver votre machine, sans détruire ni recréer les étapes suivantes devraient résoudre votre problème. (Je travaille sur OS X El Captain, Vagrant 1.8.1)

Exécuter homestead en mode débogage

homestead --debug up

Recherchez quelque chose comme dans la sortie:

INFO machine: Initialisation de la machine: par défaut INFO machine: - Fournisseur: VagrantPlugins :: ProviderVirtualBox :: Provider INFO machine: - Boîte: # INFO machine: - Data dir: /Users/YOUR_HOME_DIR/Workspace/Homestead/.vagrant/machines/default/ boîte virtuelle

Data dir , est le chemin qui vous intéresse.

ensuite vboxmanage list vms

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

Editez le fichier id , dans le chemin que vous avez trouvé dans la commande précédente

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

Remplacez le contenu de ce fichier par l'ID de la machine virtuelle que vous souhaitez corriger, dans ce scénario, il est

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

Maintenant essaye

homestead up

La VM devrait commencer à démarrer. Cela peut fonctionner ou vous pourriez avoir des problèmes avec l'authentification 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...

Pour résoudre ce problème, suivez la configuration de Check Homestead SSH

homestead ssh-config

Vous devriez obtenir quelque chose comme

Host default 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

Modifier le fichier IdentityFile

/Users/YOUR_HOME_DIR/.vagrant.d/insecure_private_key

Vérifiez Homestead.yml

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

Copiez ensuite le chemin d'accès au fichier sous les clés de clé et copiez la clé privée à partir de ce fichier

cat ~/.homestead/ssh/id_rsa

La dernière étape consiste à remplacer la clé privée dans /Users/YOUR_HOME_DIR/.vagrant.d/insecure_private_key par celle que vous venez de copier

Maintenant, essayez à nouveau la ferme échelonnée, cela devrait fonctionner.

homestead up

J'ai reçu des avertissements, mais jusqu'à présent, cela fonctionne sans problème

==> par défaut: Avertissement: l'utilisation d'un mot de passe sur l'interface de ligne de commande peut être non sécurisée. ==> par défaut: ERREUR 1045 (28000): Accès refusé pour l'utilisateur 'homestead' @ 'localhost' (en utilisant le mot de passe: OUI) La commande SSH a répondu avec un statut de sortie différent de zéro. Vagrant suppose que cela signifie que la commande a échoué. La sortie de cette commande doit être dans le journal ci-dessus. Veuillez lire la sortie pour déterminer ce qui n'a pas fonctionné.


2

Vous pouvez ouvrir l'interface graphique de VirtualBox et supprimer la machine virtuelle en conflit.


1

Dans mon cas, l' article suivant fournit la solution. Il y avait un dossier nommé homestead dans le chemin / var / root / VirtualBox VMs / qui causait le problème. Une fois ce dossier supprimé, rm -r homestead , le problème a été résolu. Si vous ne pouvez pas voir ou avoir accès à ce chemin, exécutez les commandes suivantes dans les fenêtres de votre terminal:

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

Et procédez à la suppression du dossier homestead .


1

J'ai eu l'erreur suivante:

Erreur :

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.

Solution :

  • Trouvez le dossier VirtualBox VMS , dans mon cas, il était dans~/VirtualBox VMs
  • Répertoriez les éléments du dossier avec la lscommande et vérifiez si la machine virtuelle est là
  • Supprimer le dossier avec le nom de la machine, dans mon cas homestead-7
  • Réexécutez la vagrant upcommande dans le dossier homestead

C'est tout, j'espère que c'est utile, c'était ma solution.

Cordialement!


0

Après quelques heures de dépannage, rien d'autre n'a fonctionné pour moi, car personne n'a mentionné ce petit détail.

En fonction de vos privilèges au moment de l'installation, vous devrez peut-être exécuter virtualbox en tant qu'administrateur. Ce n'est que lorsque j'ai fait cela que j'ai vu mes boîtes vagabondes dans la liste des machines virtuelles.

J'ai ensuite procédé à la suppression de ma machine virtuelle nommée homesteadde virtualbox, et le problème a été résolu.


0

Si vous utilisez homestead sous Windows, ouvrez simplement votre Oracle VM VirtualBox et supprimez la homesteadVM.


0

Le Vagrant s'appuie sur VirtualBox (si c'est le fournisseur par défaut), il vérifie donc l'environnement existant avant de provisionner votre VM.

Il exécute la commande suivante:

VBoxManage list vms

et quand il trouve la VM avec le même nom d'hôte, il échouera.

Vous pouvez le déboguer en:

vagrant --debug up

pour découvrir la raison exacte.


Solution

Si vous prévoyez d'utiliser plusieurs machines virtuelles dans différents dossiers, vous devez modifier votre config.vm.hostname(éventuellement config.vm.provider(name)aussi) dans votre Vagrantfilepour le rendre unique. Ou supprimez-le simplement pour que Vagrant attribue un nom différent à chaque VM.

Si ce n'est pas le cas, arrêtez simplement et désenregistrez la VM précédente qui est en conflit en exécutant:

VBoxManage controlvm NAMEOFVM poweroff
VBoxManage unregistervm NAMEOFVM --delete

et réexécutez votre vagrant up.

Si le changement de nom du répertoire échoue (parce que vous l'avez manqué --delete), renommez ou supprimez le dossier de destination , par exemple:

rm -fr ~/"VirtualBox VMs/NAMEOFVM"

et réessayez.


Ce problème peut être lié à: GitHub issue # 2969 - vagrant up ne détectant pas une VM précédemment exécutée


0

Dans mon cas, rien n'indiquait que la VM "existe déjà" à part ce message d'erreur. Rien sur l'interface utilisateur de VirtualBox, rien de renvoyé par «vboxmanage list vms», rien par «vagrant global-status», cela n'existait pas dans «.vagrant.d \ boxes» et ainsi de suite. Je l'ai résolu en créant manuellement une nouvelle VM de même nom dans VM VirtualBox Manager (en utilisant le bouton «nouveau» + acceptant toutes les valeurs par défaut), puis en la supprimant (clic droit> supprimer). Après cela, le «vagabond» a fonctionné comme prévu.


0

J'ai eu le même problème aujourd'hui. Windows 10. J'ai récemment mis à jour Homestead, donc l'erreur était probablement à cause de cela. Je l' ai essayé tout, destroy, up, dossiers de suppression, peu importe. Chaque fois que j'essayais de courir vagrant up, cela montrait ce genre d'erreurs. La solution? Après la mise à jour, j'ai remarqué que Homestead nomme maintenant les boîtes par le nom du dossier du projet, et Homestead.yaml a toutes ces informations. Je viens d'exécuter cette configuration Windows Homestead vendor\\bin\\homestead makeet plus tard, un vagrant up(avant de m'assurer que tout était propre) et voilá, on dirait que la machine démarre maintenant. =) Essayez cela si vous en avez besoin.


0

Ajoutez --forceaprès la case et avant votre prénom.


2
Veuillez modifier votre réponse pour expliquer pourquoi vous pensez que cette solution fonctionnera, ce qu'elle fait et comment. Cela vaut également la peine de formaliser votre anglais (même si j'apprécie que l'anglais n'est probablement pas votre langue maternelle), même si j'ai modifié votre réponse pour corriger et ranger cela.
David dit de réintégrer Monica

0

Renommer une VM par défaut déjà existante

Avertissement

La procédure suivante détruira votre VM et ne peut être appropriée que dans un environnement de destination comme le mien! Pour les environnements de production, pensez à réparer l'association comme décrit ici

J'ai eu ce problème après avoir remplacé le nom par défaut d'une VM déjà existante en utilisant

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

où le nom VirtualBox a également été défini (en tant que débutant, j'ai supposé que Vagrand utilisera également ce nom)

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

En ajoutant, config.vm.defineil semble que Vagrant n'associe plus la VM VirtualBox au fichier Vagrant puisque même vagrant destroy -fdisons VM not createdmais vagrant upjette cette erreur

Une machine VirtualBox avec le nom «Ubuntu-Test» existe déjà.

Pour supprimer ces machines virtuelles zombies
  1. Si la VM est en cours d'exécution, arrêtez-la d'abord: vboxmanage shutdown <VMName>(Ici, le nom est Ubuntu-Test)
  2. Obtenez l'identifiant en exécutant vboxmanage list vms
  3. Supprime-le: vboxmanage unregistervm <Id> --delete
  4. Maintenant, votre VM peut être recréée en utilisant vagrant up
  5. En utilisant vagrant global-status --prune, votre nouveau nom est présent

0

Pour moi, le fichier d'identification était présent à l'emplacement mentionné ci-dessous. D: \ drupalvm.vagrant \ machines \ drupalvm \ virtualbox


0

Windows10

Editez le fichier Homestead.yaml et donnez un nouveau nom à la boîte:

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

et courir vagrant upouvagrant up --provision

Ou

Ouvrez l'application Virtualbx dans l'interface graphique et supprimez toute la virtualbox qui causait le problème et exécutez la commande ci-dessus

Ou

Supprimez le fichier "Vagrant" dans le dossier homestead et exécutez la commande ci-dessus.


0

Il vous suffit d'ajouter la clé nameà votre homestead.yamlfichier juste après le fournisseur comme ceci:

name: name_of_you_machine

Ça marche pour moi.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.