Машина VirtualBox з назвою "садиба" вже існує


112

З тих пір, як садиба 2.0 господарства laravel не працює

Я не знаю, чому "farmtead init" створює файл Homestead.yaml у моєму каталозі / .homestead, а не в каталозі проектів. Homestead вгору або Vagrant вгору створити наступне повідомлення

Машина VirtualBox з назвою "садиба" вже існує.

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
Це може статися, коли ви видаляєте безпосередньо з файлової системи, не повідомляючи Vagrant та / або VirtualBox. Спробуйте VBoxManage list vmsі подивіться, чи є привид / сирота / зомбі, який потрібно витіснити.
MarkHu

Щодо конкретної відповіді для садиби - див. Відповідь від @TheSteed
John_911

Відповіді:


276

Я вирішив, використовуючи, vboxmanageщоб отримати ідентифікатор VM.

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

Скопіюйте ідентифікатор потрібного VM ( c700…db18рядка) у вміст ~/.vagrant/machines/default/virtualbox/id. Збережіть файл, а потім запустіть, vagrant upщоб він працював, не знищуючи його.


22
Вашу відповідь слід прийняти! Ви вирішили проблему, не руйнуючи машину, як запропонували деякі інші
Нісіч Йован

17
Просто до відома, що якщо ви назвали ваш ящик інакше через define(як я), то шлях не буде ../default/ , його: .vagrant/machines/<box name>/virtualbox/id. # вигода!
Ian Vaughan

7
Працював як шарм. Просто цікаво, чому ідентифікатор мого vm раптом змінився і це було взагалі необхідно.
Кріс

7
У моєму середовищі розробників id-файл знаходився на тому самому шляху, але в корені проекту. На проект-root / .vagrant / машини / за замовчуванням / virtualbox / id
Гільєрмо Машвіц

23
Для мене .vagrantпапка була не в ~/папці установки присадибної vagrant up
ділянки

75

Для мене апарат не відображався як активний VM у додатку VirtualBox. Для виправлення мені довелося це зробити:

vagrant global-status

Це дало мені посвідчення машини, яку мені потрібно було знищити. За допомогою ідентифікатора запустіть:

vagrant destroy {VM ID}

Мені довелося запустити це в судо, щоб фактично знищити машину. У цей момент я зміг бігати

vagrant up


Якщо ваш домашній ящик зіпсований, він ще не працює, це відповідь для вас. Підтверджено на Ubuntu 14.02 під управлінням VirtualBox.
Ділан Пірс

Це корисно, тому що в ньому ви знайдете каталог із запущеними
машинами для бродяжок

Команда vagrant destroy vm_idповинна бути виконана з одного і того ж каталогу.
Amr

42

Напевно у вас працює віртуальна скринька! Відкрийте програму virtualbox і вимкніть інший virtualbox;) http://smallbusiness.chron.com/shut-down-virtualbox-43657.html

Якщо це не працює, ви, можливо, захочете видалити стару папку садиби та розмістити всі свої проекти в новій папці;)


41

З наступного повідомлення:

Машина VirtualBox з назвою ' vm_name ' вже існує. Будь ласка, використовуйте інше ім’я або видаліть апарат із наявним іменем та спробуйте ще раз.

Я перерахував поточні запущені віртуальні машини з командного рядка:

VBoxManage list vms

Результат:

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

Потім переходимо до вилучення віртуальної машини, що порушує:

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

8
Єдина відповідь, яка показує, як видалити VM з командного рядка
WorldSEnder

1
Зверніть увагу, що це не буде працювати, якщо VM VirtualBox все ще працює. VM має бути вимкнено, інакше команда буде відмовлена, "оскільки VM заблокована".
Ной Суссман

4
Так, і команда була б сильною. Короткий зміст того, що працювало для мене: vboxmanage list vms, vboxmanage controlvm <id> poweroff, vboxmanage undegistervm <id> --delete
dvsander

27

Я трохи запізнююсь на вечірці з цього приводу, але для тих, хто має цю проблему, Серхіо Пелуцці зблизився, але сигару з цим не отримав:

Шукайте vb.name = settings ["name"] = "рядок" і змініть "садиба" на "HOMESTEAD" та "vói lá"

Лінія насправді:

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

Як видно з біту, який говорить про налаштування ["name"], вам просто потрібно додати поле імені до вашого файлу YAML Homestead, наприклад

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

6
Це найкраща відповідь, якщо ви насправді встановлюєте та використовуєте кілька екземплярів Homestead.
lintuxvi

1
Я згоден з @lintuxvi, це найкраща відповідь, якщо ви працюєте з кількома примірниками Homestead
Abdul Rahman A Samad

1
Ключ name: my-sexy-homestead-box- Дякую!
Artistan

Далеко найкраща відповідь!
sdespont

16

Я вирішив це редагування /Homestead_folder/scripts/homestead.rb

Шукайте vb.name = settings["name"] = "homestead"лінії і змінилося homesteadдо HOMESTEADі «ВОІ lá» , який працював для мене.


Це найкраща відповідь, яку я бачив.
Ousmane Traore

Це працює. Шукайте у цьому файлі для всіх записів vb.name = settings ['name'] та поміняйте відповідні зміни
ottz0


14

Я відредагував Homestead.yaml і додав нове ім'я для цього

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

Це правильний спосіб зробити це. Homtead.rb config спочатку шукає змінну імені в homestead.yaml
Sjshovan

Я намагався запустити ще одну садибу. Ніколи не думав, що це буде так просто. Просто додайте ім’я в Homestead.yaml
Апіт Джон Ісмаїл

1
Це дійсно має бути прийнятою відповіддю і найпростішим у виконанні.
Каспер Вілкс

9

У мене був старий каталог .vagrant в моєму проекті, який спричиняв помилку :)

Якщо це не вирішить для вас, я б запропонував відкрити VirtualBox та видалити всі VirtualBoxes та спробувати ще раз.


2
Це було все. Зробивши "оновлення коробки бродячих", мені довелося видалити цей каталог .vagrant і повторно запустити бродягу.
ecairol

8

У мене сьогодні було таке ж питання. Витратьте кілька годин, щоб знайти рішення. Якщо з будь-якої причини ви не можете знайти список вихідних віртуальних машин, тоді введіть термінал

sudo virtualbox

Це запустить Virtual Box в графічному інтерфейсі. Ви повинні побачити повний список віртуальних машин, і звідти ви зможете ними керувати. Введення лише "virtualbox" нічого не покаже. Вам потрібно бути root (адміністратор).

Завдяки mightyspaj за пораду.


1
Використовуючи звичайний додаток virtualbox на OS X, я не міг побачити жодного VM у списку, хоча мені сказали, що він вже існує. Потім я набрав virtualdobox sudo і побачив цілу купу віртуальних машин, і проблема була виправлена. Дякую.
Дуейн Чаррінгтон

Ніколи не використовуйте судо з VirtualBox. Ви збираєтеся виконувати дозволи
Wistar

7

Я отримував те саме повідомлення про помилку, навіть після запуску "присадибної долі" та "бродячого знищити". Як і ви, я використовував постачальника VirtualBox, бродягу та садибу. Ось що я зробив:

  1. Відкрито графічний інтерфейс VirtualBox. Я бачу "садибу" як ВМ, але не можу її зняти, кнопка затьмарена сірим кольором.
  2. Я вийшов зі своєї ОС, увійшов і знову відкрив VirtualBox. Зараз статус "скасовано", і я можу його видалити.
  3. Там були деякі залишкові файли ~/VirtualBox\ VMs/homestead, тому я побігrm -r /Users/gabriel/VirtualBox\ VMs/homestead
  4. Тепер я можу запустити "садибу вгору"

6

Я відкрив virtualBox, а потім видалив Vm, що створюється раніше. Це допомогло.


5

список бродячих коробок

бродячий ящик видалити laravel / садиба

бродячий глобальний статус

бродячий знищити nameOfYourBox

Відкрийте свій VirtualBox і видаліть усі курси вашої садиби

бродячий


4

Відкрийте графічний інтерфейс VirtualBox. Подивіться на свій VM та видаліть його. Це вирішило мою проблему.


3

Іноді ви, можливо, не захочете видалити старе вікно. Вчора може старий Vagrant зламався, я оновив Vagrant та Virtualbox, але картографування папок не працювало. Я хотів запустити новий ящик, і сталася ця помилка.

Я не хотів видаляти стару скриньку (тому що хотів запустити кілька резервних копій), але хотів запустити нове поле. Рішення було запущено VirtualBox, клацніть правою кнопкою миші на машині Homestead і виберіть Налаштування, а потім змінити ім'я з homesteadна homestead_old.

Після цього я зміг встановити садибу, але мав цю стару машину і міг також запустити цю програму, щоб зробити будь-які резервні копії, які мені були потрібні.

Ім'я домашньої зміни у Virtualbox


3

Якщо ви користувач Windows, обов’язково видаліть C:\Users\<Username>\VirtualBox VMs\homesteadпапку. Тому що, якщо все ще є папка з назвою "Садиба", дія " vagrant up" не буде завершена


1
У моєму випадку у мене було дві папки: садиба та садиба-7. Після видалення обох проблем вирішено. Дякую!
eleftrik

3

Нічого цього не працювало для мене. Я використовував стару машину для розробників

Я намагався:

  1. vagrant global-status> знищити будь-яке, для idчого вам не потрібно, або співставити те, що суперечить

  2. відкрийте віртуальну скриньку та видаліть + видаліть файли для будь-яких, які вам не потрібні або конфліктують

Що працювало:

  • знайдіть свою ~/.vagrant/machines/або ~/.vagrant.d/boxesпапку. У моєму випадку він містив суперечливий vm, а також купу старих машин, що залишилися над vm, які кроки 1 та 2 чомусь не видаляли.

  • після їх очищення все знову працювало нормально, нарешті!


Це чудова відповідь, якщо суперечливий VM буде в порядку, щоб його видалити / очистити. Цю відповідь слід доповнити тепер, коли папка ~/.vagrant.d/boxes/@ wired00
lintuxvi

@lintuxvi щойно додав :)
wired00

Дякую! Вирішили проблему для мене!
VivekP

2

Якщо ви хочете зберегти свою машину, не руйнуючись та відтворюючи, наступні кроки повинні вирішити вашу проблему. (Я працюю над OS X El Captain, Vagrant 1.8.1)

Запустити садибу в режимі налагодження

homestead --debug up

Шукайте щось на зразок у виході:

Машина INFO: Ініціалізаційна машина: машина INFO за замовчуванням: - Постачальник: VagrantPlugins :: ProviderVirtualBox :: Провайдер INFO машина: - Коробка: # ІНФО машина: - Режим даних: /Users/YOUR_HOME_DIR/Workspace/Homestead/.vagrant/machines/default/ virtualbox

Дані реж , цікавий для вас шлях.

Тоді vboxmanage list vms

"садиба" {0e8438b9-4a67-4fb1-80cb-2c62cf04ab5c} "usedr_default_1447385930122_73498_1474294682778_13108" {93ecb93f-f159-4406-a384-5312b4d3ab34}

Відредагуйте ідентифікаційний файл у шляху, який ви виявили в попередній команді

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

Замініть вміст цього файлу на ідентифікатор VM, який ви хочете виправити, у такому випадку він є

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

Тепер спробуйте

homestead up

VM повинен почати завантаження. Це може працювати, або у вас можуть виникнути проблеми з аутентифікацією 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...

Щоб виправити це, виконайте такі дії: Перевірте конфігурацію SSH Homestead

homestead ssh-config

Ви повинні отримати щось подібне

Хост за замовчуванням HostName 127.0.0.1 Порт для бродячих користувачів 2222
UserK knownHostsFile / dev / null StrictHostKeyПеревірка пароляАутентифікація
немає
IdentityFile "/Users/pryznar/.vagrant.d/insecure_private_key"
IdentitiesOly yes LogLevel FATAL

Редагувати файл IdentityFile

/Users/YOUR_HOME_DIR/.vagrant.d/insecure_private_key

Перевірте Homestead.yml

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

Потім скопіюйте шлях до файлу під клавішами клавіш та скопіюйте приватний ключ із цього файлу

cat ~/.homestead/ssh/id_rsa

Останнім кроком є ​​заміна приватного ключа в /Users/YOUR_HOME_DIR/.vagrant.d/insecure_private_key на той, який ви щойно скопіювали

Тепер спробуйте сфотографувати садибу ще раз, слід попрацювати.

homestead up

Я отримав кілька попереджень, але поки що це працює без проблем

==> за замовчуванням: Попередження: Використання пароля в інтерфейсі командного рядка може бути небезпечним. ==> за замовчуванням: ПОМИЛКА 1045 (28000): Відмовлено в доступі для користувача 'садиба' @ 'localhost' (використовуючи пароль: ТАК) Команда SSH відповіла ненульовим статусом виходу. Вагрант припускає, що це означає, що команда не вдалася. Вихід для цієї команди повинен бути в журналі вище. Прочитайте результати, щоб визначити, що пішло не так.


2

Ви можете відкрити графічний інтерфейс VirtualBox і видалити конфліктну віртуальну машину.


1

У моєму випадку наступна стаття пропонує рішення. Був папка з ім'ям присадибних всередині шлях / вар / корінь / VirtualBox віртуальних машин / , який викликає проблему. Після того, як ця папка була видалена, rm -r садиба , проблема була вирішена. Якщо ви не бачите або не маєте доступу до цього шляху, виконайте такі команди у вікнах терміналу:

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

І продовжуйте видаляти папку садиби .


1

У мене була така помилка:

Помилка :

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.

Рішення :

  • Знайдіть папку VMS VirtualBox , в моєму випадку вона була~/VirtualBox VMs
  • Перелічіть елементи в папці з lsкомандою та перевірте, чи існує віртуальна машина
  • Видаліть папку з назвою машини, в моєму випадку - садиба-7
  • Повторно виконайте vagrant upкоманду в папці садиби

Це все, я сподіваюся, що це корисно, це було моє рішення.

З повагою!


0

Після кількох годин усунення несправностей більше нічого не працювало для мене, оскільки ніхто не згадав цю маленьку деталь.

Залежно від ваших привілеїв на момент встановлення, можливо, вам доведеться запустити virtualbox як адміністратор. Лише коли я це зробив, я побачив свої бродячі скриньки у списку віртуальних машин.

Потім я приступив до видалення своєї віртуальної машини, названої homesteadз virtualbox, і проблема була вирішена.


0

Якщо ви використовуєте садибу в Windows, просто відкрийте свій Oracle VM VirtualBox і видаліть homesteadвіртуальну машину.


0

Vagrant покладається на VirtualBox (якщо це провайдер за замовчуванням), тому він спочатку перевіряє наявне середовище перед тим, як забезпечити ваш VM.

Він виконує таку команду:

VBoxManage list vms

і коли він знайде VM з тим же ім'ям хоста, то вийде з ладу.

Ви можете налагодити його за допомогою:

vagrant --debug up

щоб з’ясувати точну причину.


Рішення

Якщо ви плануєте використовувати кілька віртуальних машин у різних папках, вам потрібно змінити config.vm.hostname(можливо, config.vm.provider(name)також) у своїйVagrantfile щоб зробити його унікальним. Або просто видаліть його, щоб Vagrant призначив іншу назву для кожного VM.

Якщо це не так, просто вимкніть та відреєструйте попередній VM, який конфліктує при запуску:

VBoxManage controlvm NAMEOFVM poweroff
VBoxManage unregistervm NAMEOFVM --delete

і повторно запустіть свою vagrant up .

Якщо не вдалося перейменувати каталог (тому що ви пропустили --delete), перейменуйте або видаліть цільову папку , наприклад:

rm -fr ~/"VirtualBox VMs/NAMEOFVM"

і повторіть спробу.


Ця проблема може бути пов’язана з: випуском GitHub №2969 - бродячий, не виявивши раніше запущений VM


0

У моєму випадку нічого не свідчило про те, що VM "вже існує", окрім повідомлення про помилку. Нічого в інтерфейсі VirtualBox, нічого не повертається "vboxmanage list vms", нічого через "бродячий глобальний статус", його не було у ".vagrant.d \ box" тощо. Я вирішив це, вручну створивши нову однойменну VM в диспетчері віртуальних програм VM (за допомогою кнопки «новий» + прийнявши всі типові настройки), а потім видалив її (клацніть правою кнопкою миші> видалити). Після цього "бродячий" працював, як очікувалося.


0

У мене було таке ж питання і сьогодні. Windows 10. Нещодавно я оновлював Homestead, тому помилка, ймовірно, була через це. Я пробував все, destroy, up, видаляти папки, що завгодно. Кожного разу, коли я намагався запустити vagrant up, він показував подібні помилки. Рішення? Після оновлення я помітив, що Homestead тепер називає поля за назвою папки проекту, а Homestead.yaml має всі ці відомості. Я просто запускаю цю конфігурацію Windows Homestead vendor\\bin\\homestead makeі пізніше їх vagrant up(перш ніж переконатися, що це все чисто) і voilá, схоже, машина завантажується зараз. =) Спробуйте, якщо вам це потрібно.


0

Додайте --forceпісля вікна та перед своїм іменем.


2
Будь ласка, відредагуйте свою відповідь, щоб пояснити, чому ви думаєте, що це рішення спрацює, що він робить і як. Також варто формалізувати свою англійську (хоча я ціную, що англійська мова, мабуть, не є вашою першою мовою), хоча я відредагував вашу відповідь, щоб виправити та виправити це.
Девід каже повернути Моніку

0

Перейменування вже наявного за замовчуванням VM

Відмова від відповідальності

Наступна процедура знищить ваш VM і може підходити лише в таких умовах, як моя! У виробничих середовищах подумайте, як відремонтувати асоціацію описано тут

У мене виникла ця проблема після переосмислення імені за замовчуванням вже існуючої VM за допомогою

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

де також було встановлено ім'я VirtualBox (як новачок я припускав, що і Vagrand буде використовувати це ім'я)

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

Додаючи, config.vm.defineсхоже, що Vagrant більше не пов’язує VM VirtualBox з файлом Vagrant, оскільки навіть vagrant destroy -fскаже, VM not createdале vagrant upвикине цю помилку

Машина VirtualBox з назвою 'Ubuntu-Test' вже існує.

Щоб видалити ці ЗМ-зомбі
  1. Якщо VM працює, зупиніть його спочатку: vboxmanage shutdown <VMName>(Тут назваUbuntu-Test )
  2. Отримайте ідентифікатор, запустивши vboxmanage list vms
  3. Видаліть його: vboxmanage unregistervm <Id> --delete
  4. Тепер ваш VM можна заново створити за допомогою vagrant up
  5. Використовуючи vagrant global-status --prune, ваше нове ім’я присутнє


0

Windows10

Відредагуйте файл Homestead.yaml та введіть нове ім'я для цього поля:

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

і бігти vagrant upабоvagrant up --provision

Або

Відкрийте додаток Virtualbx у графічному інтерфейсі та видаліть усі віртуальні скриньки, які викликали проблему, та запустіть вищевказану команду

Або

Видаліть файл "Vagrant" у папці садиби та запустіть вищевказану команду.


0

Вам просто потрібно додати ключ nameдо свого homestead.yamlфайлу відразу після постачальника, як це:

name: name_of_you_machine

Це працює для мене.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.