이름이 'homestead'인 VirtualBox 머신이 이미 있습니다.


112

Homestead 2.0 이후 Homestead Laravel은 작동하지 않았습니다.

'homestead init'가 프로젝트 디렉토리가 아닌 mydirectory / .homestead에 Homestead.yaml 파일을 생성하는 이유를 모르겠습니다. Homestead up OR Vagrant up은 다음 메시지를 생성합니다.

이름이 'homestead'인 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

vboxmanageVM의 ID를 얻기 위해 사용하여 해결했습니다 .

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

원하는 VM의 ID ( c700…db18문자열)를의 콘텐츠에 복사합니다 ~/.vagrant/machines/default/virtualbox/id. 파일을 저장 한 다음 실행 vagrant up하여 vm을 파괴하지 않고 작동하도록합니다.


22
당신의 대답이 받아 들여 져야합니다! 어떤 다른 제안처럼 당신은 기계를 파괴하지 않고 문제를 해결
니식 조반에게

17
참고로, define(나와 같이) 를 통해 상자 이름을 다르게 지정 하면 경로는 ../default/ , 해당 : .vagrant/machines/<box name>/virtualbox/id. #이익!
Ian Vaughan 2015

7
매력처럼 작동했습니다. 내 VM의 이드가 왜 갑자기 바뀌 었는지 궁금해서 전혀 필요하지 않았다.
크리스

7
내 개발 환경에서 id 파일은 동일한 경로에 있지만 프로젝트의 루트에 있습니다. project-root / .vagrant / machines / default / virtualbox / id
Guillermo Maschwitz

23
나를 위해 .vagrant폴더에 없었다 ~/(당신이 실행 즉, 폴더 만 농가의 설치 폴더 vagrant up에서)
andrewtweber

75

저에게 머신은 VirtualBox 애플리케이션에서 활성 VM으로 표시되지 않았습니다. 수정하려면 다음을 수행해야했습니다.

vagrant global-status

이것은 내가 파괴해야하는 기계의 ID를 내게 주었다. ID로 다음을 실행하십시오.

vagrant destroy {VM ID}

나는 실제로 기계를 파괴하기 위해 sudo에서 실행해야했습니다. 그 시점에서 나는 실행할 수 있었다

vagrant up


귀하의 농가 상자가 손상되어 아직 실행 중이 아니라면 이것이 답입니다. VirtualBox를 실행하는 Ubuntu 14.02에서 확인되었습니다.
Dylan Pierce

그것은 당신에게 방랑 VM을 실행하는 디렉토리 보여주기 때문에 유용합니다
믈라덴 Janjetovic

명령 vagrant destroy vm_id은 동일한 디렉토리 내에서 실행되어야합니다.
Amr


41

다음 메시지에서 :

이름이 ' vm_name '인 VirtualBox 시스템이 이미 있습니다. 다른 이름을 사용하거나 기존 이름으로 기기를 삭제하고 다시 시도하십시오.

명령 줄에서 현재 실행중인 가상 머신을 나열했습니다.

VBoxManage list vms

결과 :

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

그런 다음 문제가되는 가상 머신 제거를 진행했습니다.

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

8
명령 줄에서 VM을 삭제하는 방법을 보여주는 유일한 답변
WorldSEnder

1
VirtualBox VM이 아직 실행 중이면 작동하지 않습니다. VM을 종료하지 않으면 "VM이 잠겨 있기 때문에"명령이 실패합니다.
노아 서스 만

4
예, 명령은 poweroff입니다. 저에게 도움이 된 요약 : vboxmanage list vms, vboxmanage controlvm <id> poweroff, vboxmanage unregistervm <id> --delete
dvsander

27

나는 이것에 대한 파티에 조금 늦었지만이 문제를 가진 다른 사람들을 위해 SergioPeluzzi가 가장 가까이 왔지만 이것으로 시가를 얻지 못했습니다.

vb.name = settings [ "name"] = "homestead"줄을 찾고 "homestead"를 "HOMESTEAD"및 "vói lá"로 변경했습니다.

라인은 실제로 다음과 같습니다.

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

설정 [ "이름"]이라는 비트에서 알 수 있듯이 Homestead YAML 파일에 이름 필드를 추가하면됩니다.

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"라인 변경 homesteadHOMESTEAD "VOI 라" 나를 위해 일한 것을.


이것은 내가 본 최고의 대답입니다.
우스만 트라오레

작동합니다. 이 파일에서 모든 레코드를 검색하십시오. 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 homestead.yaml에서 이름 변수에 대한 첫 모습을 config (설정)
Sjshovan

다른 농가를 운영하려고했습니다. 이렇게 쉬울 줄은 몰랐습니다. 그냥 Homestead.yaml에 이름을 추가
APIT 존 이스마일

1
이것은 정말로 받아 들여지는 대답이어야하며 구현하기 가장 쉽습니다.
Casper Wilkes

9

내 프로젝트에 오류를 일으킨 오래된 .vagrant 디렉토리가 있습니다. :)

이것이 해결되지 않으면 VirtualBox를 열고 모든 VirtualBox를 제거한 다음 다시 시도하는 것이 좋습니다.


2
그거였다. "vagrant box update"를 수행 한 후 해당 .vagrant 디렉토리를 제거하고 vagrant를 다시 실행해야했습니다.
ecairol 2014

8

오늘도 같은 문제가있었습니다. 해결책을 찾기 위해 몇 시간을 투자하십시오. 어떤 이유로 든 기존 가상 머신 목록을 찾을 수없는 경우 터미널을 입력하십시오.

sudo virtualbox

이것은 GUI에서 Virtual Box를 실행합니다. 전체 VM 목록이 표시되어야하며 여기에서이를 관리 할 수 ​​있습니다. "virtualbox"만 입력해도 아무것도 표시되지 않습니다. 루트 (관리자) 여야합니다.

팁에 대한 mightyspaj에게 감사드립니다.


1
OS X에서 일반 가상 상자 앱을 사용하면 이미 존재한다고 들었지만 목록에서 VM을 볼 수 없었습니다. 그런 다음 sudo virtualbox를 입력하고 VM의 전체 힙을 보았고 문제가 해결되었습니다. 감사합니다.
Dwayne Charrington 2015

VirtualBox와 함께 sudo를 사용하지 마십시오. 당신은 권한을 망칠 것입니다
Wistar

7

"homestead destory"와 "vagrant destroy"를 실행 한 후에도 동일한 오류 메시지를 받았습니다. 당신과 마찬가지로 저는 VirtualBox 공급자, 방랑자 및 농가를 사용하고있었습니다. 내가 한 일은 다음과 같습니다.

  1. VirtualBox GUI를 열었습니다. "homestead"가 VM으로 표시되지만 제거 할 수 없으며 버튼이 회색으로 표시됩니다.
  2. 내 OS에서 로그 아웃하고 다시 로그인 한 다음 VirtualBox를 다시 열었습니다. 상태는 이제 "중단됨"이며 제거 할 수 있습니다.
  3. 일부 잔여 파일이 있습니다. ~/VirtualBox\ VMs/homestead 실행했습니다.rm -r /Users/gabriel/VirtualBox\ VMs/homestead
  4. 이제 "홈스테드 업"을 실행할 수 있습니다.

6

virtualBox를 열고 이전에 만든 homestead vm을 삭제했습니다. 도움이되었습니다.


5

방랑 상자 목록

방랑 상자 laravel / homestead 제거

방랑 글로벌 상태

방랑자 파괴 nameOfYourBox

VirtualBox를 열고 농가의 모든 itens를 삭제하십시오

방랑자



3

때로는 오래된 상자를 삭제하고 싶지 않을 수도 있습니다. 어제 Vagrant가 고장 났을 수 있습니다. Vagrant 및 Virtualbox를 업데이트했지만 폴더 매핑이 작동하지 않았습니다. 새 상자를 실행하고 싶었는데이 오류가 발생했습니다.

일부 백업을 실행하고 싶었 기 때문에 이전 상자를 제거하고 싶지 않았지만 새 상자를 실행하고 싶었습니다. 솔루션은 VirtualBox를 실행하고 Homestead 컴퓨터를 마우스 오른쪽 버튼으로 클릭하고 설정을 선택한 다음 이름을 homestead에서 homestead_old.

그 후 저는 홈스테드를 설치할 수 있었지만이 오래된 머신을 가지고 있었고 필요한 백업을 만들기 위해 이것을 실행할 수도있었습니다.

Virtualbox에서 Homestead 이름 변경


3

Windows 사용자 인 경우 C:\Users\<Username>\VirtualBox VMs\homestead폴더 를 삭제해야 합니다. homestead라는 폴더가 아직 있으면의 작업 vagrant up이 완료되지 않기 때문에


1
제 경우에는 homestead와 homestead-7이라는 두 개의 폴더가 있습니다. 둘 다 삭제 한 후 문제가 해결되었습니다. 감사!
eleftrik

3

이 중 어느 것도 나를 위해 일하지 않았습니다. 나는 오래된 개발 기계를 사용하고 있었다

나는 시도했다 :

  1. vagrant global-status> id필요하지 않은 것을 파괴 하거나 충돌하는 것과 일치

  2. virtualbox를 열고 필요하지 않거나 충돌하는 파일을 제거 + 삭제

효과 :

  • ~/.vagrant/machines/또는 ~/.vagrant.d/boxes폴더를 찾습니다 . 제 경우에는 충돌하는 vm과 1 단계와 2 단계가 어떤 이유로 제거하지 않은 오래된 VM 머신이 많이 남아 있습니다.

  • 이것들을 지운 후 모든 것이 다시 정상적으로 작동했습니다!


충돌하는 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 :: Provider INFO 시스템 :-상자 : # INFO 시스템 :-데이터 디렉토리 : /Users/YOUR_HOME_DIR/Workspace/Homestead/.vagrant/machines/default/ 가상 상자

Data dir 은 흥미로운 경로입니다.

그때 vboxmanage list vms

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

이전 명령에서 찾은 경로에서 id 파일을 편집하십시오.

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

해당 파일의 내용을 수정하려는 VM의 ID로 바꿉니다.이 시나리오에서는 다음과 같습니다.

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

이를 해결하려면 Homestead SSH 구성을 확인하십시오.

homestead ssh-config

당신은 다음과 같은 것을 얻어야한다

호스트 기본 호스트 이름 127.0.0.1 사용자 방랑 포트 2222
UserKnownHostsFile / dev / null StrictHostKeyChecking no
PasswordAuthentication no
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의 개인 키 를 방금 복사 한 키로 바꾸는 것 입니다.

이제 rung homestead를 다시 시도하십시오.

homestead up

경고를 받았지만 지금까지는 문제없이 작동합니다.

==> 기본값 : 경고 : 명령 줄 인터페이스에서 암호를 사용하는 것은 안전하지 않을 수 있습니다. ==> 기본값 : 오류 1045 (28000) : 'homestead'@ 'localhost'사용자에 대한 액세스가 거부되었습니다 (암호 사용 : YES) SSH 명령이 0이 아닌 종료 상태로 응답했습니다. Vagrant는 이것이 명령이 실패했음을 의미한다고 가정합니다. 이 명령의 출력은 위의 로그에 있어야합니다. 출력을 읽고 무엇이 잘못되었는지 확인하십시오.


2

VirtualBox GUI를 열고 충돌하는 가상 머신을 제거 할 수 있습니다.


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 uphomestead 폴더에서 명령을 다시 실행하십시오.

그게 전부입니다. 도움이 되었기를 바랍니다. 그것이 제 해결책이었습니다.

문안 인사!


0

몇 시간의 문제 해결 후 아무도이 작은 세부 사항에 대해 언급하지 않았기 때문에 다른 작업이 없었습니다.

설치시 권한에 따라 관리자 권한으로 virtualbox를 실행해야 할 수 있습니다. 이 작업을 수행했을 때만 가상 머신 목록에서 방랑 상자를 볼 수있었습니다.

그런 다음 homesteadvirtualbox에서 이름이 지정된 가상 머신을 제거 하고 문제가 해결되었습니다.


0

Windows에서 홈스테드를 사용하는 경우 Oracle VM VirtualBox를 열고 VM을 삭제하기 만하면 homestead됩니다.


0

Vagrant는 VirtualBox (기본 공급자 인 경우)에 의존하므로 VM을 프로비저닝하기 전에 먼저 기존 환경을 확인합니다.

다음 명령을 실행하고 있습니다.

VBoxManage list vms

호스트 이름이 동일한 VM을 찾으면 실패합니다.

다음과 같이 디버깅 할 수 있습니다.

vagrant --debug up

정확한 이유를 알아보십시오.


해결책

다른 폴더에서 여러 VM을 사용하려는 경우 고유하게 만들기 위해 config.vm.hostname(아마도 config.vm.provider(name)) VM을 변경해야합니다 Vagrantfile. 또는 간단히 제거하면 Vagrant가 각 VM에 다른 이름을 할당합니다.

그렇지 않은 경우 다음을 실행하여 충돌하는 이전 VM을 종료하고 등록 취소하면됩니다.

VBoxManage controlvm NAMEOFVM poweroff
VBoxManage unregistervm NAMEOFVM --delete

다시 실행하십시오. vagrant up .

디렉토리 이름 변경에 실패하면 (을 놓 쳤기 때문에 --delete) 대상 폴더의 이름바꾸거나 제거합니다 . 예를 들면 다음과 같습니다.

rm -fr ~/"VirtualBox VMs/NAMEOFVM"

다시 시도하십시오.


이 문제는 다음과 관련이있을 수 있습니다. GitHub 문제 # 2969-vagrant up이 이전에 실행 된 VM을 감지하지 못함


0

제 경우에는 해당 오류 메시지 외에 VM이 "이미 존재"한다는 것을 나타내는 것은 없었습니다. VirtualBox UI에 아무것도없고, "vboxmanage list vms"에서 반환 된 내용이없고, "vagrant global-status"를 통해 아무것도 반환되지 않으며, ".vagrant.d \ boxes"에 존재하지 않았습니다. VM VirtualBox Manager에서 새 동일한 이름의 VM을 수동으로 만든 다음 ( "새로 만들기"버튼 + 모든 기본값 사용) 제거 (오른쪽 클릭> 제거)하여 문제를 해결했습니다. 그 후 "방랑자"는 예상대로 작동했습니다.


0

오늘도 같은 문제가 발생했습니다. Windows 10. 최근에 Homestead를 업데이트했기 때문에 오류가 발생한 것 같습니다. 나는 모든 것을 시도, destroy, up, 삭제 폴더, 뭐든간에. 실행하려고 할 때마다 vagrant up이런 종류의 오류가 표시되었습니다. 해결책? 업데이트 후 Homestead가 이제 프로젝트 폴더 이름으로 상자 이름을 지정하고 Homestead.yaml에 모든 정보가 있음을 알았습니다. 나는 Homestead Windows 구성을 실행 vendor\\bin\\homestead make하고 나중에 vagrant up(모든 것이 깨끗한 지 확인하기 전에) 시스템이 지금 부팅되는 것처럼 보입니다. =) 필요한 경우 시도하십시오.


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이 방랑은 더 이상 방랑 파일로도 이후 버추얼 VM을 연결하지 않는 것 같다 vagrant destroy -f라고 VM not created하지만, vagrant up이 오류를 던져

이름이 'Ubuntu-Test'인 VirtualBox 머신이 이미 있습니다.

해당 좀비 VM을 삭제하려면
  1. VM이 실행중인 경우 먼저 중지합니다. vboxmanage shutdown <VMName>(여기에 이름이 있습니다. Ubuntu-Test)
  2. 실행하여 ID 얻기 vboxmanage list vms
  3. 삭제 : vboxmanage unregistervm <Id> --delete
  4. 이제 VM을 다음을 사용하여 다시 만들 수 있습니다. vagrant up
  5. 를 사용하면 vagrant global-status --prune새 이름이 있습니다.

0

나를 위해 id 파일은 아래 언급 된 위치에있었습니다. D : \ drupalvm.vagrant \ machines \ drupalvm \ virtualbox


0

윈도우 10

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

또는

GUI에서 Virtualbx 응용 프로그램을 열고 문제를 일으키는 모든 가상 상자를 삭제하고 위의 명령을 실행하십시오.

또는

homestead 폴더에 있는 "Vagrant" 파일을 삭제하고 위 명령을 실행합니다.


0

당신은 키 추가 할 필요가 name당신에게 homestead.yaml바로이 같은 공급자 후 파일을 :

name: name_of_you_machine

그것은 나를 위해 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.