Một máy VirtualBox có tên 'homestead' đã tồn tại


112

Vì homestead 2.0 homestead laravel không hoạt động

Tôi không biết tại sao 'homestead init' tạo tệp Homestead.yaml trong mydirectory / .homestead chứ không phải trong thư mục dự án. Homestead up HOẶC Vagrant up tạo thông báo sau

Đã tồn tại một máy VirtualBox với tên '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
Điều này có thể xảy ra khi bạn xóa trực tiếp khỏi hệ thống tệp mà không thông báo cho Vagrant và / hoặc VirtualBox. Hãy thử VBoxManage list vmsvà xem liệu có mục nhập ma / trẻ mồ côi / thây ma cần được xóa.
MarkHu

Cho câu trả lời cụ thể homestead - xem câu trả lời từ @TheSteed
John_911

Câu trả lời:


276

Tôi đã giải quyết bằng cách sử dụng vboxmanageđể lấy ID của VM.

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

Sao chép ID của máy ảo mong muốn ( c700…db18chuỗi) vào nội dung của ~/.vagrant/machines/default/virtualbox/id. Lưu tệp sau đó chạy vagrant upđể vm hoạt động mà không cần phải hủy nó.


22
Câu trả lời của bạn nên được chấp nhận! Bạn giải quyết vấn đề mà không phá hủy một máy, như một số người khác đề nghị
Nisic Jovan

17
Chỉ cần lưu ý, rằng nếu bạn đặt tên hộp của mình khác qua define(như tôi), sau đó con đường sẽ không được ../default/ , nó: .vagrant/machines/<box name>/virtualbox/id. #lợi nhuận!
Ian Vaughan

7
Làm việc như người ở. Chỉ tò mò tại sao id của vm của tôi đột nhiên thay đổi và điều này là cần thiết chút nào.
Chris

7
Trên môi trường nhà phát triển của tôi, tệp id nằm trên cùng một đường dẫn, nhưng trên thư mục gốc của dự án. Tại dự án gốc / .vagrant / máy / mặc định / virtualbox / id
Guillermo Maschwitz

23
Đối với tôi, .vagrantthư mục không phải trong ~/nhưng trong thư mục cài đặt homestead (tức là thư mục mà bạn chạy vagrant uptừ)
andrewtweber

75

Đối với tôi, máy không hiển thị như một máy ảo đang hoạt động trong ứng dụng VirtualBox. Để khắc phục, tôi phải làm điều này:

vagrant global-status

Điều này đã cung cấp cho tôi ID của chiếc máy mà tôi cần phá hủy. Với ID, hãy chạy:

vagrant destroy {VM ID}

Tôi đã phải chạy điều đó trong sudo để thực sự phá hủy máy. Tại thời điểm đó, tôi đã có thể chạy

vagrant up


Nếu hộp nhà trọ của bạn bị lỗi, không chạy được thì đây là câu trả lời dành cho bạn. Đã xác minh trên Ubuntu 14.02 chạy VirtualBox.
Dylan Pierce

Đây là hữu ích vì nó cho bạn thấy thư mục chạy lang thang máy ảo
Mladen Janjetovic

Lệnh vagrant destroy vm_idphải được chạy từ trong cùng một thư mục.
Amr


40

Từ tin nhắn sau:

Máy VirtualBox có tên ' vm_name ' đã tồn tại. Vui lòng sử dụng tên khác hoặc xóa máy có tên hiện có và thử lại.

Tôi đã liệt kê các máy ảo đang chạy hiện tại từ dòng lệnh:

VBoxManage list vms

Kết quả :

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

Sau đó, tiến hành xóa máy ảo vi phạm:

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

7
Câu trả lời duy nhất mà chương trình làm thế nào để xóa một VM từ dòng lệnh
WorldSEnder

1
Lưu ý rằng điều này sẽ không hoạt động nếu VirtualBox VM vẫn đang chạy. Máy ảo phải được tắt nếu không lệnh sẽ không thành công "bởi vì máy ảo bị khóa."
Noah Sussman

4
Có và lệnh sẽ là poweroff. Tóm tắt thông tin về những gì làm việc cho tôi: danh sách vms VBoxManage, VBoxManage controlvm <id> poweroff, VBoxManage unregistervm <id> --delete
dvsander

27

Tôi hơi muộn đến bữa tiệc về điều này, nhưng đối với bất kỳ ai khác gặp vấn đề này, SergioPeluzzi đã đến gần nhất, nhưng không lấy được điếu xì gà với điều này:

Tìm kiếm dòng vb.name = settings ["name"] = "homestead" và thay đổi "homestead" thành "HOMESTEAD" và "vói lá"

Dòng thực sự là:

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

Như bạn có thể thấy từ bit cho biết cài đặt ["name"], bạn chỉ cần thêm trường tên vào tệp Homestead YAML của mình, ví dụ:

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

6
Đây là câu trả lời tốt nhất nếu bạn thực sự đang cài đặt và sử dụng nhiều phiên bản Homestead.
lintuxvi

1
Tôi đồng ý với @lintuxvi này là câu trả lời tốt nhất nếu bạn đang làm việc với nhiều trường Homestead
Abdul Rahman Một Samad

1
Điều quan trọng là name: my-sexy-homestead-box- Cảm ơn!
Artistan

Xa câu trả lời tốt nhất!
sdespont

16

Tôi đã giải quyết việc chỉnh sửa này /Homestead_folder/scripts/homestead.rb

Tìm kiếm vb.name = settings["name"] = "homestead"dòng và đổi homesteadthành HOMESTEAD"vói lá" phù hợp với tôi.


Đây là câu trả lời hay nhất mà tôi đã thấy.
Ousmane Traore,

Những công việc này. Tìm kiếm tệp này cho tất cả các bản ghi vb.name = settings ['name'] và thay đổi theo cách ghi
ottz0


14

Tôi đã chỉnh sửa Homestead.yaml và thêm tên mới cho nó

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

Đây là cách chính xác để làm điều đó. homestead.rb config lần đầu tiên tìm kiếm biến tên trong homestead.yaml
Sjshovan

Tôi đang cố gắng vận hành một ngôi nhà khác. Không bao giờ nghĩ rằng nó sẽ dễ dàng như vậy. Chỉ cần thêm một tên trong Homestead.yaml
Apit John Ismail

1
Đây thực sự phải là câu trả lời được chấp nhận và dễ thực hiện nhất.
Casper Wilkes

9

Tôi có một thư mục .vagrant cũ trong dự án của mình đang gây ra lỗi :)

Nếu điều này không khắc phục được cho bạn, tôi khuyên bạn nên mở VirtualBox và xóa tất cả VirtualBox và thử lại.


2
Điều đó là vậy đó. Sau khi thực hiện "cập nhật hộp vagrant", tôi phải xóa thư mục .vagrant đó và chạy lại vagrant lên.
ecairol

8

Tôi đã có cùng một vấn đề ngày hôm nay. Dành vài giờ để tìm ra giải pháp. Nếu vì lý do nào đó mà bạn không thể tìm thấy danh sách các máy ảo đang thoát thì hãy nhập vào terminal

sudo virtualbox

Thao tác này sẽ chạy Hộp ảo trong GUI. Bạn sẽ thấy danh sách đầy đủ các máy ảo và từ đó bạn có thể quản lý chúng. Chỉ nhập "hộp thư ảo" sẽ không hiển thị bất cứ điều gì. Bạn cần phải là người chủ (quản trị viên).

Cảm ơn Strongspaj cho mẹo.


1
Sử dụng ứng dụng hộp ảo thông thường trên OS X, tôi không thể thấy bất kỳ máy ảo nào trong danh sách mặc dù tôi đã được thông báo rằng nó đã tồn tại. Sau đó, tôi gõ sudo virtualbox và thấy một đống toàn bộ VM và sự cố đã được khắc phục. Cảm ơn bạn.
Dwayne Charrington

Không bao giờ sử dụng sudo với VirtualBox. Bạn sắp sửa sai quyền
Wistar

7

Tôi đã nhận được thông báo lỗi tương tự, ngay cả sau khi chạy "homestead destory" và "vagrant Destory". Giống như bạn, tôi đang sử dụng nhà cung cấp VirtualBox, người lang thang và nhà trọ. Đây là những gì tôi đã làm:

  1. Đã mở GUI VirtualBox. Tôi thấy "homestead" như một máy ảo, nhưng tôi không thể xóa nó, nút có màu xám.
  2. Tôi đã đăng xuất khỏi hệ điều hành của mình, đăng nhập lại và mở lại VirtualBox. Trạng thái hiện đã bị "hủy bỏ" và tôi có thể xóa.
  3. Có một số tệp còn sót lại trong ~/VirtualBox\ VMs/homestead, vì vậy tôi đã chạyrm -r /Users/gabriel/VirtualBox\ VMs/homestead
  4. Bây giờ tôi có thể chạy "homestead up"

6

Tôi đã mở virtualBox và sau đó xóa vm homestead đã được tạo trước đó. Nó đã giúp đỡ.


5

danh sách hộp lang thang

hộp vagrant loại bỏ laravel / homestead

tình trạng toàn cầu lang thang

vagrant tiêu diệt tênOfYourBox

Mở VirtualBox của bạn và xóa tất cả các lần lặp lại của ngôi nhà của bạn

lang thang


4

Mở VirtualBox GUI. Tìm máy ảo của bạn và xóa nó. Nó đã giải quyết vấn đề của tôi.


3

Đôi khi bạn có thể không muốn xóa hộp cũ. Hôm qua có thể Vagrant cũ đã bị hỏng, tôi đã cập nhật Vagrant và Virtualbox nhưng ánh xạ thư mục không hoạt động. Tôi muốn chạy hộp mới và gặp lỗi này.

Tôi không muốn xóa hộp cũ (vì tôi muốn chạy một số bản sao lưu) nhưng tôi muốn chạy hộp mới. Giải pháp là chạy VirtualBox, nhấp chuột phải vào máy Homestead và chọn Cài đặt và sau đó thay đổi tên từ homesteadthành homestead_old.

Sau đó, tôi đã có thể cài đặt homestead nhưng có chiếc máy cũ này và cũng có thể chạy nó để tạo bất kỳ bản sao lưu nào tôi cần.

Thay đổi tên Homestead trong Virtualbox


3

Nếu bạn là Người dùng Windows, hãy đảm bảo rằng bạn xóa C:\Users\<Username>\VirtualBox VMs\homesteadthư mục. Bởi vì nếu vẫn còn một thư mục có tên homestead, hành động của vagrant upsẽ không được hoàn thành


1
Trong trường hợp của tôi, tôi có hai thư mục: homestead và homestead-7. Sau khi xóa cả hai, vấn đề đã được giải quyết. Cảm ơn!
eleftrik

3

Không có điều này làm việc cho tôi. Tôi đang sử dụng một máy dev cũ

Tôi đã cố gắng:

  1. vagrant global-status> tiêu diệt bất kỳ thứ nào idbạn không cần hoặc phù hợp với những gì đang xung đột

  2. mở hộp ảo và xóa + xóa các tệp mà bạn không cần hoặc đang xung đột

Những gì hoạt động:

  • xác định vị trí của bạn ~/.vagrant/machines/hoặc ~/.vagrant.d/boxesthư mục. Trong trường hợp của tôi, nó chứa vm xung đột và cũng có một loạt các máy vm cũ còn sót lại mà bước 1 & 2 không xóa vì một số lý do.

  • sau khi xóa những thứ này, cuối cùng mọi thứ đã hoạt động tốt trở lại!


Đây là một câu trả lời tuyệt vời nếu máy ảo xung đột có thể được gỡ bỏ / xóa. Câu trả lời này nên được sửa đổi ngay bây giờ vì thư mục là ~/.vagrant.d/boxes/@ wired00
lintuxvi

@lintuxvi vừa được thêm :)
wired00

Cảm ơn! Đã giải quyết vấn đề cho tôi!
VivekP

2

Nếu bạn muốn giữ lại máy của mình, không phá hủy và tạo lại các bước sau sẽ giải quyết được vấn đề của bạn. (Tôi làm việc trên OS X El Captain, Vagrant 1.8.1)

Chạy homestead ở chế độ gỡ lỗi

homestead --debug up

Tìm một cái gì đó giống như trong đầu ra:

Máy INFO: Máy khởi tạo: máy INFO mặc định: - Nhà cung cấp: VagrantPlugins :: ProviderVirtualBox :: Máy cung cấp INFO: - Hộp: Máy # INFO: - Dữ liệu: /Users/YOUR_HOME_DIR/Workspace/Homestead/.vagrant/machines/default/ hộp ảo

Data dir , là con đường thú vị cho bạn.

Sau đó vboxmanage list vms

"nhà dân" {0e8438b9-4a67-4fb1-80cb-2c62cf04ab5c} "người định cư_default_1447385930122_73498_1474294682778_13108" {93ecb93f-f159-4406-a384-5312b4d3ab34}

Chỉnh sửa tệp id , trong đường dẫn mà bạn đã tìm thấy trong lệnh trước

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

Thay thế nội dung của tệp đó bằng id của máy ảo bạn muốn sửa, trong trường hợp này, nó là

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

Bây giờ cố gắng

homestead up

VM sẽ bắt đầu khởi động. Nó có thể hoạt động hoặc bạn có thể gặp sự cố với xác thực 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...

Để khắc phục điều đó, hãy làm theo Kiểm tra cấu hình SSH của Homestead

homestead ssh-config

Bạn sẽ nhận được một cái gì đó giống như

Máy chủ mặc định HostName 127.0.0.1 User vagrant Port 2222
UserKnownHostsFile / dev / null nghiêm ngặtHostKeyChecking no
PasswordAuthentication no
IdentityFile "/Users/pryznar/.vagrant.d/insecure_private_key"
IdentitiesChỉ có LogLevel FATAL

Chỉnh sửa tệp IdentityFile

/Users/YOUR_HOME_DIR/.vagrant.d/insecure_private_key

Kiểm tra Homestead.yml

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

Sau đó, sao chép đường dẫn đến tập tin dưới phím phím , và sao chép khóa bí mật từ tập tin đó

cat ~/.homestead/ssh/id_rsa

Bước cuối cùng là thay thế khóa cá nhân trong /Users/YOUR_HOME_DIR/.vagrant.d/insecure_private_key bằng khóa bạn vừa sao chép

Bây giờ hãy thử rung homestead một lần nữa, sẽ hoạt động.

homestead up

Tôi đã nhận được một số cảnh báo, nhưng cho đến nay nó vẫn hoạt động mà không có vấn đề gì

==> default: Cảnh báo: Sử dụng mật khẩu trên giao diện dòng lệnh có thể không an toàn. ==> mặc định: ERROR 1045 (28000): Quyền truy cập bị từ chối đối với người dùng 'homestead' @ 'localhost' (sử dụng mật khẩu: CÓ) Lệnh SSH phản hồi với trạng thái thoát khác 0. Vagrant giả định rằng điều này có nghĩa là lệnh không thành công. Đầu ra cho lệnh này phải có trong nhật ký ở trên. Vui lòng đọc đầu ra để xác định điều gì đã xảy ra.


2

Bạn có thể mở VirtualBox GUI và xóa máy ảo xung đột.


1

Trong trường hợp của tôi, bài viết sau đây cung cấp giải pháp. Có một thư mục có tên homestead bên trong đường dẫn / var / root / VirtualBox VMs / đang gây ra sự cố. Sau khi xóa thư mục này, rm -r homestead , sự cố đã được giải quyết. Nếu bạn không thể nhìn thấy hoặc có quyền truy cập vào đường dẫn này, hãy thực hiện các lệnh sau trong cửa sổ đầu cuối của bạn:

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

Và tiến hành xóa thư mục homestead .


1

Tôi đã gặp lỗi sau:

Lỗi :

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.

Giải pháp :

  • Tìm thư mục VirtualBox VMS , trong trường hợp của tôi, nó nằm trong~/VirtualBox VMs
  • Liệt kê các phần tử trong thư mục với ls lệnh và xem lại máy ảo có ở đó không
  • Xóa thư mục có tên của máy, trong trường hợp của tôi là homestead-7
  • Thực hiện lại vagrant uplệnh trong thư mục homestead

Chỉ vậy thôi, tôi hy vọng nó hữu ích, đó là giải pháp của tôi.

Trân trọng!


0

Sau một vài giờ khắc phục sự cố, không có gì khác hoạt động với tôi, vì không ai đề cập đến chi tiết nhỏ này.

Tùy thuộc vào đặc quyền của bạn tại thời điểm cài đặt, bạn có thể cần chạy virtualbox với tư cách quản trị viên. Chỉ khi tôi làm điều này, tôi mới nhìn thấy các hộp mơ hồ của mình trong danh sách các máy ảo.

Sau đó, tôi đã tiến hành xóa máy ảo của mình có tên homesteadkhỏi virtualbox và sự cố đã được giải quyết.


0

Nếu bạn đang sử dụng homestead trong Windows, chỉ cần mở Oracle VM VirtualBox và xóa homesteadVM.


0

Vagrant dựa vào VirtualBox (nếu đó là nhà cung cấp mặc định) nên nó sẽ kiểm tra môi trường hiện có trước khi cấp phép cho máy ảo của bạn.

Nó đang thực hiện lệnh sau:

VBoxManage list vms

và khi nó tìm thấy máy ảo có cùng tên máy chủ, vì vậy nó sẽ bị lỗi.

Bạn có thể gỡ lỗi nó bằng cách:

vagrant --debug up

để tìm ra lý do chính xác.


Giải pháp

Nếu bạn định sử dụng nhiều máy ảo trong các thư mục khác nhau, thì bạn cần phải thay đổi config.vm.hostname(có thể cả config.vm.provider(name)) trongVagrantfile để làm cho nó trở nên độc nhất. Hoặc đơn giản là loại bỏ nó, vì vậy Vagrant sẽ chỉ định một tên khác cho mỗi máy ảo.

Nếu không đúng như vậy, chỉ cần tắt máy và hủy đăng ký VM trước đó xung đột bằng cách chạy:

VBoxManage controlvm NAMEOFVM poweroff
VBoxManage unregistervm NAMEOFVM --delete

và chạy lại của bạn vagrant up.

Nếu nó không thành công khi đổi tên thư mục (vì bạn đã bỏ lỡ --delete), thì hãy đổi tên hoặc xóa thư mục đích , ví dụ:

rm -fr ~/"VirtualBox VMs/NAMEOFVM"

và thử lại.


Sự cố này có thể liên quan đến: Sự cố GitHub # 2969 - không phát hiện ra máy ảo đã chạy trước đó


0

Trong trường hợp của tôi, không có gì chỉ ra rằng máy ảo "đã tồn tại" ngoài thông báo lỗi đó. Không có gì trên giao diện người dùng VirtualBox, không có gì được trả về bởi “danh sách vboxmanage vms”, không có gì thông qua “trạng thái toàn cầu lang thang”, nó không tồn tại trong “.vagrant.d \ box”, v.v. Tôi đã giải quyết vấn đề này bằng cách tạo thủ công một máy ảo cùng tên mới trong VM VirtualBox Manager (sử dụng nút “mới” + chấp nhận tất cả các giá trị mặc định), rồi xóa nó (nhấp chuột phải> xóa). Sau đó, "lang thang" hoạt động như mong đợi.


0

Tôi đã có cùng một vấn đề ngày hôm nay. Windows 10. Gần đây tôi đã cập nhật Homestead, vì vậy lỗi có thể là do đó. Tôi đã cố gắng tất cả, destroy, up, thư mục xóa, bất cứ điều gì. Bất cứ khi nào tôi cố gắng chạy vagrant up, nó đều hiển thị loại lỗi này. Giải pháp? Sau khi cập nhật, tôi nhận thấy rằng Homestead hiện đang đặt tên các hộp theo tên thư mục dự án và Homestead.yaml có tất cả các thông tin đó. Tôi chỉ chạy cấu hình Homestead Windows vendor\\bin\\homestead makeđó và sau đó là chúng vagrant up(trước khi đảm bảo rằng tất cả đều sạch) và voilá, có vẻ như máy đang khởi động bây giờ. =) Hãy thử điều đó nếu bạn cần.


0

Thêm --forcesau hộp, và trước tên đã cho của bạn.


2
Vui lòng chỉnh sửa câu trả lời của bạn để giải thích lý do tại sao bạn nghĩ rằng giải pháp này sẽ hoạt động, nó có tác dụng gì và như thế nào. Ngoài ra, nó cũng đáng để chính thức hóa tiếng Anh của bạn (mặc dù tôi đánh giá cao rằng tiếng Anh có lẽ không phải là ngôn ngữ mẹ đẻ của bạn), mặc dù tôi đã chỉnh sửa câu trả lời của bạn để chỉnh sửa và gọn gàng điều đó.
David nói hãy phục hồi Monica

0

Đổi tên một máy ảo mặc định đã tồn tại

Khước từ

Quy trình sau sẽ phá hủy máy ảo của bạn và có thể chỉ phù hợp trong môi trường desting như của tôi! Đối với môi trường sản xuất, hãy xem xét để sửa chữa liên kết như được mô tả ở đây

Tôi gặp sự cố này sau khi ghi đè tên mặc định của một máy ảo đã tồn tại bằng cách sử dụng

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

nơi tên VirtualBox cũng được đặt (là một người mới, tôi cho rằng Vagrand cũng sẽ sử dụng tên này)

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

Bằng cách thêm vào config.vm.define, có vẻ như Vagrant không liên kết VirtualBox VM nữa với tệp Vagrant vì thậm chí vagrant destroy -fnói VM not creatednhưng vagrant upném lỗi này

Một máy VirtualBox có tên 'Ubuntu-Test' đã tồn tại.

Để xóa những máy ảo zombie đó
  1. Nếu máy ảo đang chạy, trước tiên hãy dừng nó lại: vboxmanage shutdown <VMName>(Tên đây làUbuntu-Test )
  2. Nhận Id bằng cách chạy vboxmanage list vms
  3. Xóa đi: vboxmanage unregistervm <Id> --delete
  4. Bây giờ máy ảo của bạn có thể được tạo lại bằng cách sử dụng vagrant up
  5. Sử dụng vagrant global-status --prune, tên mới của bạn hiện diện

0

Đối với tôi tệp id đã có ở vị trí được đề cập bên dưới. D: \ drupalvm.vagrant \ machine \ drupalvm \ virtualbox


0

Windows10

Chỉnh sửa tệp Homestead.yaml và đặt tên mới cho hộp:

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

và chạy vagrant uphoặcvagrant up --provision

Hoặc là

Mở ứng dụng Virtualbx trong GUI và xóa tất cả hộp ảo đang gây ra sự cố và chạy lệnh trên

Hoặc là

Xóa tệp "Vagrant" bên trong thư mục homestead và chạy lệnh trên.


0

Bạn chỉ cần thêm khóa namevào homestead.yamltệp của mình ngay sau trình cung cấp như sau:

name: name_of_you_machine

Nó ổn với tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.