Машина VirtualBox с именем «Homestead» уже существует.


112

Так как усадьба 2.0 усадьба ларавел не работает

Я не знаю, почему «Homestead init» создает файл Homestead.yaml в mydirectory / .homestead, а не в каталоге проекта. Homestead up ИЛИ Vagrant up создайте следующее сообщение

Машина VirtualBox с именем «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
Это может произойти, когда вы удаляете напрямую из файловой системы без уведомления Vagrant и / или VirtualBox. Попробуйте VBoxManage list vmsи посмотрите, есть ли запись о призраке / сироте / зомби, которую нужно удалить.
MarkHu

Для конкретного ответа на усадьбу - см. Ответ от @TheSteed
John_911

Ответы:


276

Я решил, используя vboxmanageдля получения идентификатора виртуальной машины.

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

Скопируйте ID желаемой ВМ ( c700…db18строку) в содержимое ~/.vagrant/machines/default/virtualbox/id. Сохраните файл, затем запустите, vagrant upчтобы виртуальная машина заработала, не уничтожая ее.


22
Ваш ответ должен быть принят! Вы решили проблему, не уничтожив машину, как предлагали некоторые другие
Нишич Йован

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

7
Работал как шарм. Просто любопытно, почему id моего vm внезапно изменился и это было вообще необходимо.
Крис

7
В моей среде разработки файл id находился по тому же пути, но в корне проекта. В project-root / .vagrant / machines / default / virtualbox / id
Гильермо Машвиц

23
Для меня .vagrantпапка была не в папке, ~/а в папке установки vagrant up
Hometead

75

Для меня машина не отображалась как активная виртуальная машина в приложении VirtualBox. Чтобы исправить это, мне пришлось сделать следующее:

vagrant global-status

Это дало мне идентификатор машины, которую мне нужно было уничтожить. С идентификатором запустите:

vagrant destroy {VM ID}

Мне пришлось запустить это в sudo, чтобы фактически уничтожить машину. В этот момент я смог запустить

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
Единственный ответ, который показывает, как удалить виртуальную
машину

1
Обратите внимание, что это не сработает, если виртуальная машина VirtualBox все еще работает. Виртуальная машина должна быть выключена, иначе команда не будет выполнена, «потому что виртуальная машина заблокирована».
Ной Сассман

4
Да и команда была бы poweroff. Резюме того, что сработало для меня: vboxmanage list vms, vboxmanage controlvm <id> poweroff, vboxmanage unregistervm <id> --delete
dvsander

27

Я немного опоздал на вечеринку по этому поводу, но для всех, у кого есть эта проблема, Серджио Пелуцци подошел ближе всего, но не получил сигару с этим:

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

Строка на самом деле:

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

Как видно из бита с надписью settings ["name"], вам просто нужно добавить поле имени в ваш YAML-файл Homestead, например

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

6
Это лучший ответ, если вы действительно устанавливаете и используете несколько экземпляров Homestead.
lintuxvi 01

1
Я согласен с @lintuxvi, это лучший ответ, если вы работаете с несколькими экземплярами Homestead
Абдул Рахман Самад

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

Это правильный способ сделать это. Конфигурация homestead.rb сначала ищет переменную name в homestead.yaml
Sjshovan

Я пытался запустить другую ферму. Никогда не думал, что это будет так просто. Просто добавьте имя в Homestead.yaml
Apit John Ismail

1
Это действительно должен быть принятый ответ, и его проще всего реализовать.
Каспер Уилкс,

9

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

Если это не поможет вам, я бы предложил открыть VirtualBox, удалить все VirtualBox и повторить попытку.


2
Вот и все. После выполнения «vagrant box update» мне пришлось удалить этот каталог .vagrant и повторно запустить vagrant up.
ecairol

8

Сегодня у меня была такая же проблема. Потратьте несколько часов, чтобы найти решение. Если по какой-либо причине вы не можете найти список выходящих виртуальных машин, введите терминал

sudo virtualbox

Это запустит Virtual Box в графическом интерфейсе. Вы должны увидеть полный список виртуальных машин, и оттуда вы сможете управлять ими. Только ввод «виртуального бокса» ничего не покажет. Вы должны быть root (администратором).

Спасибо mightyspaj за подсказку.


1
Используя обычное приложение виртуального бокса в OS X, я не видел никаких виртуальных машин в списке, хотя мне говорили, что они уже существуют. Затем я набрал sudo virtualbox и увидел целую кучу виртуальных машин, и проблема была устранена. Спасибо.
Дуэйн Чаррингтон

Никогда не используйте sudo с VirtualBox. Вы собираетесь испортить разрешения
Wistar

7

Я получал то же сообщение об ошибке даже после запуска "Homestead destory" и "vagrant destroy". Как и вы, я использовал провайдера VirtualBox, vagrant и homestead. Вот что я сделал:

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

6

Я открыл virtualBox, а затем удалил созданную ранее домашнюю vm. Это помогло.


5

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

vagrant box удалить laravel / homestead

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

бродяга уничтожить nameOfYourBox

Откройте VirtualBox и удалите все объекты вашей усадьбы

бродить


4

Откройте графический интерфейс VirtualBox. Найдите свою виртуальную машину и удалите ее. Это решило мою проблему.


3

Иногда вы можете не захотеть удалять старый ящик. Вчера, возможно, старый Vagrant сломался, я обновил Vagrant и Virtualbox, но отображение папок не работало. Я хотел запустить новый ящик и получил эту ошибку.

Я не хотел удалять старый ящик (потому что хотел запустить несколько резервных копий), но хотел запустить новый ящик. В решении был запущен VirtualBox, щелкните правой кнопкой мыши на компьютере Homestead и выберите «Настройки», а затем измените имя с homesteadна homestead_old.

После этого я смог установить hometead, но у меня была эта старая машина, и я мог также запустить ее для создания любых необходимых мне резервных копий.

Изменить название усадьбы в Virtualbox


3

Если вы являетесь пользователем Windows, убедитесь, что вы удалили C:\Users\<Username>\VirtualBox VMs\homesteadпапку. Потому что, если еще есть папка с именем homestead, действие vagrant upне будет завершено


1
В моем случае у меня было две папки: усадьба и усадьба-7. После удаления обоих проблема решена. Спасибо!
Элефтрик

3

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

Я пытался:

  1. vagrant global-status> уничтожить все, idчто вам не нужно, или сопоставить то, что противоречит

  2. откройте виртуальный бокс и удалите + удалите файлы, которые вам не нужны или конфликтуют

Что сработало:

  • найдите свою папку ~/.vagrant/machines/или ~/.vagrant.d/boxes. В моем случае он содержал конфликтующие виртуальные машины, а также кучу старых оставшихся виртуальных машин, которые по какой-то причине не удалось удалить на этапах 1 и 2.

  • после очистки все снова заработало нормально!


Это отличный ответ, если конфликтующую виртуальную машину можно удалить / очистить. Этот ответ следует изменить теперь, когда папка ~/.vagrant.d/boxes/@ wired00
lintuxvi

@lintuxvi только что добавил :)
wired00

Спасибо! Решил проблему за меня!
VivekP

2

Если вы хотите сохранить свою машину, не разрушая и не воссоздавая, следующие шаги должны решить вашу проблему. (Я работаю над OS X El Captain, Vagrant 1.8.1)

Запустить Homestead в режиме отладки

homestead --debug up

Ищите в выводе что-то вроде:

Машина INFO: Инициализирующая машина: машина INFO по умолчанию: - Provider: VagrantPlugins :: ProviderVirtualBox :: Provider INFO machine: - Поле: # INFO machine: - Каталог данных: /Users/YOUR_HOME_DIR/Workspace/Homestead/.vagrant/machines/default/ виртуальный бокс

Каталог данных - это путь, который вас интересует.

затем vboxmanage list vms

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

Отредактируйте файл идентификатора по пути, который вы узнали в предыдущей команде

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

Замените содержимое этого файла на идентификатор виртуальной машины, которую вы хотите исправить, в этом сценарии это

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

Теперь попробуй

homestead up

ВМ должна начать загрузку. Это может сработать, или у вас могут возникнуть проблемы с аутентификацией 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
UserKnownHostsFile / dev / null StrictHostKeyChecking нет
PasswordAuthentication нет
IdentityFile "/Users/pryznar/.vagrant.d/insecure_private_key"
IdentitiesOnly 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): Доступ запрещен для пользователя 'homestead' @ 'localhost' (с использованием пароля: YES). Команда SSH ответила ненулевым статусом выхода. Бродяга предполагает, что это означает, что команда не выполнена. Вывод этой команды должен быть в журнале выше. Прочтите вывод, чтобы определить, что пошло не так.


2

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


1

В моем случае решение предлагается в следующей статье . Внутри пути / var / root / VirtualBox VMs / была папка с именем homestead, которая вызвала проблему. Как только эта папка была удалена, rm -r homestead , проблема была решена. Если вы не видите или не имеете доступа к этому пути, выполните следующие команды в окнах вашего терминала:

$ 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.

Решение :

  • Найдите папку VirtualBox VMS , в моем случае она была в~/VirtualBox VMs
  • Перечислите элементы в папке с помощью lsкоманды и проверьте, есть ли там виртуальная машина.
  • Удалите папку с названием машины, в моем случае homestead-7
  • Повторно выполнить vagrant upкоманду в папке усадьбы

Вот и все, я надеюсь, что это поможет, это было моим решением.

С уважением!


0

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

В зависимости от ваших прав во время установки вам может потребоваться запустить виртуальный бокс от имени администратора. И только когда я это сделал, я увидел свои бродячие ящики в списке виртуальных машин.

Затем я приступил к удалению моей виртуальной машины с именем homesteadvirtualbox, и проблема была решена.


0

Если вы используете Homestead в Windows, просто откройте Oracle VM VirtualBox и удалите homesteadвиртуальную машину.


0

Vagrant полагается на VirtualBox (если это поставщик по умолчанию), поэтому он сначала проверяет существующую среду перед подготовкой вашей виртуальной машины.

Он выполняет следующую команду:

VBoxManage list vms

и когда он найдет виртуальную машину с тем же именем хоста, он потерпит неудачу.

Вы можете отладить его:

vagrant --debug up

чтобы узнать точную причину.


Решение

Если вы планируете использовать несколько виртуальных машин в разных папках, вам необходимо изменить свой config.vm.hostname(возможно, config.vm.provider(name)тоже) в своем, Vagrantfileчтобы сделать его уникальным. Или просто удалите его, чтобы Vagrant присвоил каждой виртуальной машине другое имя.

Если это не так, просто выключите и отмените регистрацию предыдущей виртуальной машины, которая конфликтует, запустив:

VBoxManage controlvm NAMEOFVM poweroff
VBoxManage unregistervm NAMEOFVM --delete

и перезапустите ваш vagrant up.

Если не удается переименовать каталог (потому что вы пропустили --delete), переименуйте или удалите папку назначения , например:

rm -fr ~/"VirtualBox VMs/NAMEOFVM"

и повторите попытку.


Эта проблема может быть связана с: проблемой GitHub № 2969 - vagrant up не обнаруживает ранее запущенную виртуальную машину.


0

В моем случае кроме этого сообщения об ошибке ничего не указывало на то, что виртуальная машина «уже существует». Ничего в пользовательском интерфейсе VirtualBox, ничего не возвращено «vboxmanage list vms», ничего через «vagrant global-status», этого не существует в «.vagrant.d \ box» и так далее. Я решил это, вручную создав новую виртуальную машину с таким же именем в VM VirtualBox Manager (используя кнопку «новый» + принимая все значения по умолчанию), а затем удалив ее (щелкните правой кнопкой мыши> удалить). После этого «бродяжничество» сработало, как и ожидалось.


0

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


0

Добавьте --forceпосле поля и перед вашим именем.


2
Пожалуйста , измените свой ответ , чтобы объяснить , почему вы думаете , это решение будет работать, что он делает и как. Также стоит формализовать свой английский (хотя я понимаю, что английский, вероятно, не ваш родной язык), хотя я отредактировал ваш ответ, чтобы исправить и привести его в порядок.
Дэвид говорит, что

0

Переименование уже существующей виртуальной машины по умолчанию

Отказ от ответственности

Следующая процедура уничтожит вашу виртуальную машину и может быть применима только в такой среде, как моя! Для производственных сред рассмотрите возможность восстановления ассоциации, как описано здесь.

У меня возникла эта проблема после переопределения имени по умолчанию уже существующей виртуальной машины с помощью

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

где также было задано имя VirtualBox (как новичок я предположил, что Вагранд тоже будет использовать это имя)

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

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

Машина VirtualBox с именем «Ubuntu-Test» уже существует.

Чтобы удалить эти зомби-ВМ
  1. Если виртуальная машина работает, сначала остановите ее: vboxmanage shutdown <VMName>(Здесь имяUbuntu-Test )
  2. Получите идентификатор, запустив vboxmanage list vms
  3. Удали это: vboxmanage unregistervm <Id> --delete
  4. Теперь вашу виртуальную машину можно воссоздать с помощью vagrant up
  5. Используя vagrant global-status --prune, ваше новое имя присутствует

0

Для меня файл id находился в указанном ниже месте. D: \ drupalvm.vagrant \ машины \ drupalvm \ virtualbox


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.