이름이 '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"라인 변경 homestead에 HOMESTEAD와 "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.