Maszyna VirtualBox o nazwie „homestead” już istnieje


112

Odkąd Homestead 2.0 Homestead Laravel nie działa

Nie wiem, dlaczego „homestead init” tworzy plik Homestead.yaml w katalogu mydirectory / .homestead, a nie w katalogu projektu. Homestead up OR Vagrant up utwórz następującą wiadomość

Maszyna VirtualBox o nazwie „homestead” już istnieje.

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
Może się to zdarzyć, gdy usuniesz bezpośrednio z systemu plików bez informowania Vagranta i / lub VirtualBox. Spróbuj VBoxManage list vmsi sprawdź, czy jest wpis o duchu / sierocie / zombie, który należy usunąć.
MarkHu

Aby uzyskać konkretną odpowiedź dotyczącą gospodarstwa domowego - zobacz odpowiedź z @TheSteed
John_911,

Odpowiedzi:


276

Rozwiązałem za pomocą, vboxmanageaby uzyskać identyfikator maszyny wirtualnej.

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

Skopiuj identyfikator żądanej maszyny wirtualnej ( c700…db18ciąg) do zawartości ~/.vagrant/machines/default/virtualbox/id. Zapisz plik, a następnie uruchom, vagrant upaby maszyna wirtualna działała bez konieczności jej niszczenia.


22
Twoja odpowiedź powinna zostać zaakceptowana! Rozwiązałeś problem bez niszczenia maszyny, jak sugerowali inni
Nisic Jovan

17
Wystarczy zauważyć, że jeśli nazwane inaczej poprzez swoje pole define(jak ja), to ścieżka nie będzie ../default/ , jego: .vagrant/machines/<box name>/virtualbox/id. #zysk!
Ian Vaughan

7
Działał jak urok. Ciekawe, dlaczego nagle zmienił się identyfikator mojego vm i było to w ogóle konieczne.
Chris

7
W moim środowisku deweloperskim plik id znajdował się w tej samej ścieżce, ale w katalogu głównym projektu. At project-root / .vagrant / machines / default / virtualbox / id
Guillermo Maschwitz

23
Dla mnie .vagrantfolder nie był ~/jednak w folderze instalacyjnym zagroda (tj folderze uruchomić vagrant upz)
andrewtweber

75

Dla mnie maszyna nie wyświetlała się jako aktywna maszyna wirtualna w aplikacji VirtualBox. Aby to naprawić, musiałem to zrobić:

vagrant global-status

To dało mi identyfikator maszyny, którą musiałem zniszczyć. Za pomocą identyfikatora uruchom:

vagrant destroy {VM ID}

Musiałem to uruchomić w sudo, aby faktycznie zniszczyć maszynę. W tym momencie mogłem biegać

vagrant up


Jeśli twoje gospodarstwo domowe jest uszkodzone, a jeszcze nie działa, to jest odpowiedź dla ciebie. Zweryfikowano na Ubuntu 14.02 z VirtualBox.
Dylan Pierce

Jest to przydatne, ponieważ pokazuje katalog z uruchomionymi maszynami wirtualnymi vagrant
Mladen Janjetovic

Polecenie vagrant destroy vm_idnależy uruchomić z tego samego katalogu.
Amr


41

Z następującej wiadomości:

Maszyna VirtualBox o nazwie „ vm_name ” już istnieje. Użyj innej nazwy lub usuń urządzenie o istniejącej nazwie i spróbuj ponownie.

Wymieniłem aktualnie uruchomione maszyny wirtualne z wiersza poleceń:

VBoxManage list vms

Wynik:

„nazwa_vm” { 8ba467b7-da96-4f68-9bf8-671dd6f0d007 }

Następnie przystąpiono do usuwania naruszającej maszyny wirtualnej:

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

8
Jedyna odpowiedź, która pokazuje, jak usunąć
maszynę

1
Zwróć uwagę, że to nie zadziała, jeśli maszyna wirtualna VirtualBox nadal działa. Maszyna wirtualna musi zostać zamknięta, w przeciwnym razie polecenie zakończy się niepowodzeniem, „ponieważ maszyna wirtualna jest zablokowana”.
Noah Sussman

4
Tak, a polecenie byłoby wyłączone. Podsumowanie tego, co pracował dla mnie: vboxmanage lista VMS, vboxmanage controlvm <id> poweroff, vboxmanage unregistervm <id> --delete
dvsander

27

Trochę spóźniłem się na imprezę w tej sprawie, ale dla każdego, kto ma ten problem, SergioPeluzzi był najbliżej, ale nie dostałem cygara z tym:

Wyszukaj wiersz vb.name = settings ["name"] = "homestead" i zmieniono "homestead" na "HOMESTEAD" i "vói lá"

Linia jest w rzeczywistości:

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

Jak widać z fragmentu, który mówi ustawienia ["nazwa"], wystarczy dodać pole nazwy do pliku Homestead YAML, np.

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

6
To najlepsza odpowiedź, jeśli faktycznie instalujesz i używasz wielu instancji Homestead.
lintuxvi

1
Zgadzam się z @lintuxvi, to najlepsza odpowiedź, jeśli pracujesz z wieloma instancjami Homestead
Abdul Rahman A Samad

1
Kluczem jest name: my-sexy-homestead-box- dzięki!
Artistan

Daleko najlepsza odpowiedź!
sdespont

16

Rozwiązałem tę edycję /Homestead_folder/scripts/homestead.rb

Poszukaj vb.name = settings["name"] = "homestead"linii i zmieńhomestead na HOMESTEADi "vói lá", które zadziałały dla mnie.


To najlepsza odpowiedź, jaką widziałem.
Ousmane Traore,

To działa. Przeszukaj ten plik pod kątem wszystkich rekordów vb.name = settings ['name'] i zmień odpowiednio
ottz0


14

Edytowałem Homestead.yaml i dodałem do niego nową nazwę

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

To jest właściwy sposób, aby to zrobić. Konfiguracja homestead.rb najpierw szuka zmiennej name w homestead.yaml
Sjshovan

Próbowałem uruchomić kolejne gospodarstwo. Nigdy nie myślałem, że to będzie takie proste. Po prostu dodaj imię w Homestead.yaml
Apit John Ismail

1
To naprawdę powinna być akceptowana i najłatwiejsza do wdrożenia odpowiedź.
Casper Wilkes

9

W moim projekcie miałem stary katalog .vagrant, który powodował błąd :)

Jeśli to nie rozwiąże problemu, sugeruję otwarcie VirtualBox i usunięcie wszystkich VirtualBox i spróbuj ponownie.


2
To było to. Po wykonaniu „aktualizacji vagrant box” musiałem usunąć ten katalog .vagrant i ponownie uruchomić vagrant.
ecairol

8

Miałem dzisiaj ten sam problem. Poświęć kilka godzin, aby znaleźć rozwiązanie. Jeśli z jakiegoś powodu nie możesz znaleźć listy wychodzących maszyn wirtualnych, wpisz terminal

sudo virtualbox

Spowoduje to uruchomienie Virtual Box w GUI. Powinieneś zobaczyć pełną listę maszyn wirtualnych i stamtąd będziesz mógł nimi zarządzać. Wpisanie samego „virtualbox” niczego nie pokaże. Musisz być rootem (administratorem).

Dzięki mightyspaj za napiwek.


1
Korzystając ze zwykłej aplikacji virtualbox na OS X, nie widziałem żadnych maszyn wirtualnych na liście, mimo że powiedziano mi, że już istnieją. Następnie wpisałem sudo virtualbox i zobaczyłem całą stertę maszyn wirtualnych i problem został naprawiony. Dziękuję Ci.
Dwayne Charrington,

Nigdy, przenigdy nie używaj sudo z VirtualBox. Zamierzasz schrzanić uprawnienia
Wistar

7

Otrzymałem ten sam komunikat o błędzie, nawet po uruchomieniu „homestead destory” i „vagrant zniszczyć”. Tak samo jak ty, korzystałem z dostawcy VirtualBox, włóczęgi i homestead. Oto co zrobiłem:

  1. Otwarty interfejs graficzny VirtualBox. Widzę „homestead” jako maszynę wirtualną, ale nie mogę jej usunąć, przycisk jest wyszarzony.
  2. Wylogowałem się z systemu operacyjnego, zalogowałem się ponownie i ponownie otworzyłem VirtualBox. Stan jest teraz „przerwany” i mogę usunąć.
  3. Było tam kilka szczątkowych plików ~/VirtualBox\ VMs/homestead, więc uciekłemrm -r /Users/gabriel/VirtualBox\ VMs/homestead
  4. Mogę teraz uruchomić „domostwo”

6

Otworzyłem virtualBox, a następnie usunąłem utworzoną wcześniej maszynę wirtualną homestead. Pomogło.


5

lista skrzynek włóczęgów

pudełko włóczęgów usuń laravel / homestead

włóczęga status globalny

włóczęga zniszczyć nameOfYourBox

Otwórz swój VirtualBox i usuń wszystkie elementy swojego domostwa

włóczęga się


4

Otwórz interfejs graficzny VirtualBox. Sprawdź swoją maszynę wirtualną i usuń ją. To rozwiązało mój problem.


3

Czasami możesz nie chcieć usuwać starego pudełka. Wczoraj może stary Vagrant się zepsuł, zaktualizowałem Vagrant i Virtualbox, ale mapowanie folderów nie działało. Chciałem uruchomić nowe pudełko i miałem ten błąd.

Nie chciałem usuwać starego pudełka (ponieważ chciałem uruchomić kopie zapasowe), ale chciałem uruchomić nowy box. Rozwiązaniem było uruchomienie VirtualBox, kliknij prawym przyciskiem myszy komputer Homestead i wybierz Ustawienia, a następnie zmieniając nazwę z homesteadna homestead_old.

Potem mogłem zainstalować homestead, ale miałem ten stary komputer i mogłem go również uruchomić, aby wykonać wszelkie potrzebne kopie zapasowe.

Homestead zmienia nazwę w Virtualbox


3

Jeśli jesteś użytkownikiem systemu Windows, pamiętaj, aby usunąć C:\Users\<Username>\VirtualBox VMs\homesteadfolder. Bo jeśli nadal istnieje folder o nazwie homestead, akcja vagrant upnie zostanie zakończona


1
W moim przypadku miałem dwa foldery: homestead i homestead-7. Po usunięciu obu, problem został rozwiązany. Dzięki!
eleftrik

3

Nic z tego nie działało dla mnie. Używałem starej maszyny deweloperskiej

Próbowałem:

  1. vagrant global-status> niszcz idwszystko, czego nie potrzebujesz lub dopasuj to, co jest w konflikcie

  2. otwórz virtualbox i usuń + usuń pliki, których nie potrzebujesz lub które są w konflikcie

Co zadziałało:

  • zlokalizuj swój folder ~/.vagrant/machines/lub ~/.vagrant.d/boxes. W moim przypadku zawierał kolidującą maszynę wirtualną, a także kilka starych pozostawionych maszyn wirtualnych, których kroki 1 i 2 nie zostały usunięte z jakiegoś powodu.

  • po ich wyczyszczeniu wszystko w końcu działało dobrze!


To świetna odpowiedź, jeśli konfliktowa maszyna wirtualna może zostać usunięta / wyczyszczona. Ta odpowiedź powinna zostać zmieniona teraz, gdy folder to ~/.vagrant.d/boxes/@ wired00
lintuxvi

@lintuxvi właśnie dodano :)
wired00

Dzięki! Rozwiązał problem za mnie!
VivekP

2

Jeśli chcesz zachować swoją maszynę, bez niszczenia i odtwarzania, poniższe kroki powinny rozwiązać Twój problem. (Pracuję na OS X El Captain, Vagrant 1.8.1)

Uruchom homestead w trybie debugowania

homestead --debug up

Poszukaj czegoś takiego na wyjściu:

Maszyna INFO: Maszyna inicjująca: domyślna maszyna INFO: - Dostawca: VagrantPlugins :: ProviderVirtualBox :: Maszyna INFO dostawcy: - Box: # Maszyna INFO: - Katalog danych: /Users/YOUR_HOME_DIR/Workspace/Homestead/.vagrant/machines/default/ virtualbox

Data dir , to ścieżka, która Cię interesuje.

Następnie vboxmanage list vms

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

Edytuj plik id , w ścieżce, którą znalazłeś w poprzednim poleceniu

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

Zastąp zawartość tego pliku identyfikatorem maszyny wirtualnej, którą chcesz naprawić, w tym scenariuszu jest

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

Spróbuj teraz

homestead up

Maszyna wirtualna powinna rozpocząć rozruch. To może zadziałać lub możesz mieć problemy z uwierzytelnianiem 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...

Aby to naprawić, wykonaj następujące czynności Sprawdź konfigurację Homestead SSH

homestead ssh-config

Powinieneś dostać coś takiego

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

Edytuj plik IdentityFile

/Users/YOUR_HOME_DIR/.vagrant.d/insecure_private_key

Sprawdź Homestead.yml

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

Następnie skopiuj ścieżkę do pliku pod kluczami kluczy i skopiuj klucz prywatny z tego pliku

cat ~/.homestead/ssh/id_rsa

Ostatnim krokiem jest zastąpienie klucza prywatnego w /Users/YOUR_HOME_DIR/.vagrant.d/insecure_private_key tym, który właśnie skopiowałeś

Teraz spróbuj ponownie zadzwonić do domu, powinno działać.

homestead up

Dostałem kilka ostrzeżeń, ale na razie działa bez problemów

==> domyślnie: Ostrzeżenie: Używanie hasła w interfejsie wiersza poleceń może być niebezpieczne. ==> domyślnie: ERROR 1045 (28000): Odmowa dostępu dla użytkownika „homestead” @ „localhost” (używając hasła: TAK) Polecenie SSH odpowiedziało niezerowym kodem wyjścia. Vagrant zakłada, że ​​oznacza to niepowodzenie polecenia. Dane wyjściowe tego polecenia powinny znajdować się w powyższym dzienniku. Przeczytaj dane wyjściowe, aby określić, co poszło nie tak.


2

Możesz otworzyć GUI VirtualBox i usunąć maszynę wirtualną powodującą konflikt.


1

W moim przypadku rozwiązanie przedstawia poniższy artykuł . W ścieżce / var / root / VirtualBox VMs / znajdował się folder o nazwie homestead, który powodował problem. Po usunięciu tego folderu, rm -r homestead , problem został rozwiązany. Jeśli nie widzisz tej ścieżki lub nie masz do niej dostępu, wykonaj następujące polecenia w oknach terminala:

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

I przystąp do usuwania folderu homestead .


1

Wystąpił następujący błąd:

Błąd :

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.

Rozwiązanie :

  • Znajdź folder VirtualBox VMS , w moim przypadku był w~/VirtualBox VMs
  • Wymień elementy w folderze z ls polecenia i sprawdź, czy jest tam maszyna wirtualna
  • Usuń folder z nazwą maszyny, w moim przypadku homestead-7
  • Ponownie wykonaj vagrant uppolecenie w folderze homestead

To wszystko, mam nadzieję, że to pomocne, to było moje rozwiązanie.

Pozdrowienia!


0

Po kilku godzinach rozwiązywania problemów nic innego nie działało, ponieważ nikt nie wspomniał o tym drobnym szczególe.

W zależności od uprawnień w momencie instalacji może być konieczne uruchomienie virtualbox jako administrator. Dopiero gdy to zrobiłem, zobaczyłem moje włóczęgi na liście maszyn wirtualnych.

Następnie przystąpiłem do usuwania mojej maszyny wirtualnej o nazwie homesteadz virtualbox i problem został rozwiązany.


0

Jeśli używasz homestead w systemie Windows, po prostu otwórz swój Oracle VM VirtualBox i usuń homesteadmaszynę wirtualną.


0

Vagrant polega na VirtualBox (jeśli jest to domyślny dostawca), więc najpierw sprawdza istniejące środowisko przed udostępnieniem maszyny wirtualnej.

Wykonuje następujące polecenie:

VBoxManage list vms

a kiedy znajdzie maszynę wirtualną o tej samej nazwie hosta, zakończy się niepowodzeniem.

Możesz go debugować przez:

vagrant --debug up

aby poznać dokładny powód.


Rozwiązanie

Jeśli planujesz używać wielu maszyn wirtualnych w różnych folderach, musisz zmienić config.vm.hostname(prawdopodobnie config.vm.provider(name)również) w plikuVagrantfile aby był wyjątkowy. Lub po prostu go usuń, aby Vagrant przypisze inną nazwę każdej maszyny wirtualnej.

Jeśli tak nie jest, po prostu zamknij i wyrejestruj poprzednią maszynę wirtualną, która powoduje konflikt, uruchamiając:

VBoxManage controlvm NAMEOFVM poweroff
VBoxManage unregistervm NAMEOFVM --delete

i ponownie uruchom vagrant up.

Jeśli nie powiedzie się przy zmianie nazwy katalogu (ponieważ przegapiłeś --delete), zmień nazwę lub usuń folder docelowy , na przykład:

rm -fr ~/"VirtualBox VMs/NAMEOFVM"

i spróbuj ponownie.


Ten problem może być związany z: problemem GitHub nr 2969 - włóczęga nie wykrywa poprzednio uruchomionej maszyny wirtualnej


0

W moim przypadku nic nie wskazywało na to, że maszyna wirtualna „już istnieje” poza tym komunikatem o błędzie. Nic w interfejsie użytkownika VirtualBox, nic nie zwracane przez „vboxmanage list vms”, nic przez „vagrant global-status”, nie istniało w „.vagrant.d \ box” i tak dalej. Rozwiązałem to ręcznie, tworząc nową maszynę wirtualną o tej samej nazwie w VM VirtualBox Manager (używając przycisku „nowy” + akceptując wszystkie ustawienia domyślne), a następnie usuwając ją (kliknij prawym przyciskiem myszy> usuń). Potem „włóczęga w górę” działała zgodnie z oczekiwaniami.


0

Dzisiaj miałem ten sam problem. Windows 10. Niedawno zaktualizowałem Homestead, więc błąd prawdopodobnie wynikał z tego. Próbowałem to wszystko destroy, upfoldery Usuń, cokolwiek. Za każdym razem, gdy próbowałem biegać vagrant up, pokazywał tego rodzaju błędy. Rozwiązanie? Po aktualizacji zauważyłem, że Homestead nazywa teraz skrzynki według nazwy folderu projektu, a Homestead.yaml ma wszystkie te informacje. Po prostu uruchamiam tę konfigurację Homestead Windows, vendor\\bin\\homestead makea później vagrant up(zanim upewnię się, że wszystko jest czyste) i voilá, wygląda na to, że maszyna się teraz uruchamia. =) Spróbuj tego, jeśli tego potrzebujesz.


0

Dodaj --forcepo polu, a przed swoim imieniem.


2
Proszę edytować swoje odpowiedzi, aby wyjaśnić, dlaczego uważasz, że to rozwiązanie będzie działać, co robi i jak. Warto również sformalizować swój angielski (chociaż doceniam, że angielski prawdopodobnie nie jest Twoim pierwszym językiem), chociaż zredagowałem Twoją odpowiedź, aby to poprawić i uporządkować.
David mówi, że przywróć Monikę

0

Zmiana nazwy już istniejącej domyślnej maszyny wirtualnej

Zrzeczenie się

Poniższa procedura zniszczy maszynę wirtualną i może być odpowiednia tylko w środowisku docelowym, takim jak moje! W przypadku środowisk produkcyjnych rozważ naprawę powiązania w sposób opisany tutaj

Miałem ten problem po zastąpieniu domyślnej nazwy już istniejącej maszyny wirtualnej przy użyciu

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

gdzie ustawiono również nazwę VirtualBox (jako nowicjusz założyłem, że Vagrand też będzie używał tej nazwy)

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

Dodając config.vm.definewydaje się, że Vagrant nie kojarzy już maszyny wirtualnej VirtualBox z plikiem Vagrant, ponieważ nawet vagrant destroy -fpowiedz, VM not createdale vagrant upwyrzuć ten błąd

Maszyna VirtualBox o nazwie „Ubuntu-Test” już istnieje.

Aby usunąć te maszyny wirtualne zombie
  1. Jeśli maszyna wirtualna jest uruchomiona, najpierw ją zatrzymaj: vboxmanage shutdown <VMName>(tutaj jest nazwa Ubuntu-Test)
  2. Uzyskaj identyfikator, biegając vboxmanage list vms
  3. Usuń to: vboxmanage unregistervm <Id> --delete
  4. Teraz możesz odtworzyć maszynę wirtualną za pomocą vagrant up
  5. Używając vagrant global-status --prune, Twoje nowe imię jest obecne

0

Dla mnie plik id był obecny we wskazanej poniżej lokalizacji. D: \ drupalvm.vagrant \ machines \ drupalvm \ virtualbox


0

Windows10

Edytuj plik Homestead.yaml i nadaj skrzynce nową nazwę:

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

i biegnij vagrant up lubvagrant up --provision

Lub

Otwórz aplikację Virtualbx w GUI i usuń wszystkie virtualbox, które powodowało problem, i uruchom powyższe polecenie

Lub

Usuń plik „Vagrant” w folderze homestead i uruchom powyższe polecenie.


0

Musisz tylko dodać klucz namedo swojego homestead.yamlpliku zaraz po dostawcy w ten sposób:

name: name_of_you_machine

To działa dla mnie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.