Машина 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.