Vagrant启动失败。创建虚拟机的用户与当前用户不匹配。

135

我尝试启动我的vagrant虚拟机,所以我导航到包含Vagrantfile的文件夹,并使用以下命令:

vagrant up && vagrant ssh

但是我得到了以下错误信息:

VirtualBox VM是由与运行Vagrant的当前用户不匹配的用户创建的。VirtualBox要求使用相同的用户来管理VM。请使用该用户重新运行Vagrant。这不是Vagrant问题。

用于创建VM的UID为:0,您的UID为:501

我也试过使用sudo,但那也不起作用。

我需要切换UID吗?如何做到这一点?

17个回答

268

今天我也遇到了同样的问题。
我通过打开文件.vagrant/machines/default/virtualbox/creator_uid并将 501 更改为 0 来编辑我的 UID

保存文件后,命令vagrant up就像魔术一样工作了。

注意:.vagrant文件夹位于您运行vagrant up的Vagrantfile所在的目录中。


70
我发现自己处于同样的情况,我在ubuntu机器上打了一个tar包。因此,仅仅移除在ubuntu中创建的“rm -rf .vagrant”目录也解决了这个问题。 - Jeff Sheffield
2
//,哇,谢谢,@Fred!Stackoverflow以这种精确、难以找到的解决方案为我们提供了最好的服务,而这些解决方案都来自于那些曾经处理过这些问题的人。在基于Unix的机器上,我通常会在哪里找到.vagrant文件夹? - Nathan Basanese
1
不确定,@Nathan。你能运行一个查找creator_uid文件的命令吗?尝试在命令行中输入“locate creator_uid”以查找要编辑的文件路径。 - Fred
4
我的情况是,creator_uid 包含“90210”,但我的 UID 是502。我没有像这个解决方案建议的那样将文件中的 UID 改为0,而是改成了502。效果很好。 - Mr. Lance E Sloan
5
.vagrant文件夹位于您运行vagrant up的相同位置。 - Harish Reddy
显示剩余6条评论

37
在稍微不同的情况下遇到了这个问题。问题在于 ".vagrant" 被提交到了 git 仓库中,而提交者和我使用不同的 UID。
解决方案:将 .vagrant 添加到 .gitignore 中。

16
我遇到的问题是:简单地将.vagrant添加到.gitignore不会解决问题 - 个人经验可能不同,但应该也运行git rm -rf .vagrant - Marco Massenzio
@marco:你说得完全正确。如果“.vagrant”已经添加到仓库中,事后再将其添加到.gitignore文件中就太晚了 :) - Chris Cogdon

8
我遇到了同样的问题,但是在我的情况下是因为我在sudo下运行了vagrant up,当我稍后回来时,我忘记了这一点。
这是一个愚蠢的错误,但我相信这不是第一次发生这种情况 :)

1
同样的问题,我也忘了在sudo下运行。但是不幸的是,错误信息并没有很好地指示这一点。 - Zac Blazic
1
一样的问题。我使用了 sudo vagrant up,但是接着使用了 vagrant ssh,导致出现了不同用户的错误。忘记使用 sudo vagrant ssh 了,使用后问题得到解决。 - Hondaman900

8

我试过在 .vagrant\machines\default\virtualbox\creator_uid 中更改 id,但对我无效,但删除文件 creator_uid 就起作用了。


4

在这里只需更改用户ID:.vagrant/machines/default/virtualbox/creator_uid


2

有可能你执行了以下命令:sudo vagrant up

这意味着作为常规用户,你无法查看或删除/.vagrant文件夹和文件。

如果是这样,请运行:sudo vagrant destroy -f

然后你应该能够使用你的普通用户账户运行:vagrant up


1
运行以下命令:

bash
sudo vagrant up

1
根据VirtualBox用户手册的说明:

作为一项安全措施,Linux实现的内部网络仅允许以相同用户ID运行的虚拟机建立内部网络。

换句话说,您必须切换到root(UID 0)才能运行它。

10
不应以sudo身份运行,只需删除您的.vagrant目录并使用您的用户身份运行即可。 - Jeremy

1

我遇到了同样的问题。我在Vagrantfile所在的目录中删除了.vagrant目录,然后它就正常工作了。


0

仅仅是为了补充一下Fred的https://dev59.com/plwZ5IYBdhLWcg3wROiO#32256848答案。

确保你更改了正确的虚拟机。例如,我的虚拟机名称不是默认的,而是叫做homestead-7。

所以到达正确的路径是:

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

不要翻译

,只翻译内容。

.vagrant/machines/default/virtualbox/creator_uid

当我把我的Mac更换为另一台Mac时,我遇到了这个错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接