Vagrant Không bắt đầu lên. Người dùng đã tạo VM không khớp với người dùng hiện tại


123

Tôi đã cố gắng khởi động máy vagrant của mình, vì vậy tôi đã điều hướng đến thư mục chứa vagrantfile của mình và sử dụng:

vagrant up && vagrant ssh

nhưng tôi nhận được thông báo lỗi sau:

VirtualBox VM được tạo với người dùng không khớp với người dùng hiện tại đang chạy Vagrant. VirtualBox yêu cầu cùng một người dùng được sử dụng để quản lý VM đã được tạo. Vui lòng chạy lại Vagrant với người dùng đó. Đây không phải là một vấn đề Vagrant.

UID được sử dụng để tạo VM là: 0 UID của bạn là: 501

Tôi cũng đã thử với sudo, nhưng nó cũng không hoạt động.

Tôi có cần chuyển đổi UID không? Và làm thế nào tôi có thể làm điều này?

Câu trả lời:


252

Tôi gặp vấn đề tương tự ngày hôm nay.
Tôi đã chỉnh sửa UID của mình bằng cách mở tệp .vagrant/machines/default/virtualbox/creator_uidvà thay đổi 501 thành 0 .

Sau khi tôi lưu tập tin, lệnh vagrant up hoạt động như một nhà vô địch.

NB: .vagrantthư mục nằm trong cùng thư mục với Vagrantfile của bạn, nơi bạn đã chạyvagrant up


64
Tôi thấy mình trong tình huống tương tự, tôi đã lấy tarball từ một máy Ubuntu. Vì vậy, chỉ cần loại bỏ các rm -rf .vagrantthư mục đã được tạo trong ubfox cũng giải quyết được vấn đề.
Jeff Sheffield

1
//, Wow, cảm ơn, @Fred! Stackoverflow phục vụ chúng tôi tốt nhất với loại giải pháp chính xác, khó tìm này từ một người đã phải đối phó với nó trước đây. Tôi thường sẽ tìm thấy .vagrantthư mục trên các máy dựa trên Unix ở đâu?
Nathan Basan

1
Không chắc chắn, @Nathan. Bạn có thể chạy lệnh định vị cho tệp creator_uid không? Hãy thử "định vị creator_uid" tại dòng lệnh để tìm đường dẫn đến tệp cần chỉnh sửa.
Fred

4
Trong trường hợp của tôi, creator_uid chứa "90210", nhưng UID của tôi là 502. Thay vì thay đổi UID trong tệp thành 0 như giải pháp này đã đề xuất, tôi đã thay đổi nó thành 502. Hoạt động tốt.
LS

5
.vagrantThư mục @NathanBasan ở cùng địa điểm bạn đã chạyvagrant up
Harish Reddy

33

Chạy vào vấn đề này trong một tình huống hơi khác. Vấn đề là ".vagrant" đã được kiểm tra trong repo git và committer đang chạy dưới một UID khác với tôi.

Giải pháp: thêm .vagrant vào .gitignore.


15
Đây là vấn đề tôi phải đối mặt; tuy nhiên, chỉ cần thêm .vagrantvào .gitignoresẽ không giải quyết được vấn đề - YMMV, nhưng git rm -rf .vagrantcũng nên được chạy.
Marco Massenzio

@marco: Bạn hoàn toàn đúng. nếu ".vagrant" đã được thêm vào repo, thêm nó vào .gitignore sau đó thì quá muộn :)
Chris Cogdon

8

Tôi gặp vấn đề tương tự, nhưng trong trường hợp của tôi, đó là vì tôi đã chạy vagrant uptheo sudo, và khi tôi trở lại nó sau đó tôi đã quên mất.

Sai lầm ngớ ngẩn, nhưng tôi chắc chắn đó không phải là lần đầu tiên nó xảy ra với ai đó :)


1
Vấn đề tương tự ở đây, quên chạy theo sudo. Nhưng thông báo lỗi không phải là rất đáng tiếc.
Zac Blazic

5

Tôi đã thử thay đổi id trong .vagrant \ Machines \ default \ virtualbox \ creator_uid và điều đó không hiệu quả với tôi nhưng xóa tệp, creator_uid đã thực hiện thủ thuật này.


3

chỉ cần thay đổi ID người dùng ở đây .vagrant / Machines / default / virtualbox / creator_uid


1

Theo Hướng dẫn sử dụng VirtualBox :

Là một biện pháp bảo mật, việc triển khai Linux của mạng nội bộ chỉ cho phép các máy ảo chạy dưới cùng một ID người dùng để thiết lập một mạng nội bộ.

Nói cách khác, bạn phải chuyển sang root ( UID 0) để chạy nó.


10
Không nên chạy như sudo, chỉ cần xóa thư mục .vagrant của bạn và chạy với tư cách là người dùng của bạn
Jeremy

1

Có thể bạn đã chạy lệnh: sudo vagrant up

Điều này có nghĩa là người dùng thông thường của bạn, bạn không thể nhìn thấy hoặc thậm chí xóa /.vagrantthư mục và tệp.

Nếu vậy, chỉ cần chạy: sudo vagrant destroy -f

Sau đó, bạn sẽ có thể chạy (như tài khoản người dùng bình thường của bạn): vagrant up



0

Tôi đã có vấn đề tương tự sau khi tôi có một máy tính mới. Thay vì sao chép tất cả các file từ máy tính cũ của tôi, tôi đã phải kiểm tra các dự án lang thang một lần nữa từ kho git. Sau đó, vagrant uplàm việc tốt.


0

Chỉ cần thêm vào câu trả lời https://stackoverflow.com/a/32256848/2065804 của Fred .

Hãy chắc chắn rằng bạn đã thay đổi máy VM chính xác. Ví dụ, tên VM của tôi KHÔNG mặc định mà được gọi là homestead-7.

Vì vậy, đường dẫn đến đúng là:

.vagrant/machines/homestead-7/virtualbox/creator_uid

và không:

.vagrant/machines/default/virtualbox/creator_uid

Lỗi này xảy ra với tôi khi tôi đổi máy Mac của mình sang máy Mac khác.


0

Xóa nội dung của thư mục ẩn .vagrant trong thư mục làm việc hiện tại và chạy lại lệnh vagrant up. Lỗi, do sao chép / sao lưu Vagranfile / s từ hệ thống này sang hệ thống khác. sự không phù hợp của người dùng với Vagrant để mang đến môi trường .. hy vọng nó sẽ giúp cổ vũ .. !! :)) nếu bạn không muốn xóa thư mục đó, bạn có thể cập nhật uid của người dùng hiện tại trong tệp trong thư mục ẩn của thư mục làm việc hiện tại, tức là .vagrant / Machines / jenkins / virtualbox $ vim creator_uid


0

Tôi đã từng đối mặt với tình huống tương tự, nhưng tôi có một Vagrantfile nhiều máy .

Để thay thế uid cũ (1001) bằng cái mới (1000) tôi đã sử dụng lệnh sau:

for i in $(find . -type f -iname "creator_uid" ) ; do echo 1000 > $i ; done

0

Tôi đã có cùng một vấn đề tôi đã quên đặt sudotrước đây vagrant up, bạn chỉ cần thực hiện sudo vagrant uptrong thư mục của tập tin mơ hồ của bạn.


0

Tôi có tập tin mơ hồ Multi-Machine. Tôi đã kiểm tra creator_uidvà nó 0vẫn còn nhưng không thể tải. Vì vậy, tôi đã xóa creator_uidtập tin cho tất cả Multi-Machine và nó đã hoạt động. Đường dẫn nên.vagrant\machines\<machine_name>\virtualbox

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.