Vagrant 未启动。创建 VM 的用户与当前用户不匹配

Vagrant Not Starting Up. User that created VM doesn't match current user

我试图启动我的 vagrant 机器,所以我导航到我的 vagrantfile 所在的文件夹,并使用:

vagrant up && vagrant ssh

但我收到以下错误消息:

The VirtualBox VM was created with a user that doesn't match the current user running Vagrant. VirtualBox requires that the same user be used to manage the VM that was created. Please re-run Vagrant with that user. This is not a Vagrant issue.

The UID used to create the VM was: 0 Your UID is: 501

我也试过使用 sudo,但也没用。

我需要切换 UID 吗?我该怎么做?

根据 VirtualBox User Manual:

As a security measure, the Linux implementation of internal networking only allows VMs running under the same user ID to establish an internal network.

也就是说,你得切换到root(UID 0)到运行才行。

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

保存文件后,命令 vag运行t up 运行得非常好。

注意:.vagrant 文件夹与您的 Vag运行t 文件位于同一目录中,运行 vagrant up

运行在稍微不同的情况下进入这个问题。问题是“.vagrant”被签入 git 回购协议,而提交者 运行 使用的 UID 与我不同。

解决方案:将 .vagrant 添加到 .gitignore.

我尝试更改 .vagrant\machines\default\virtualbox\creator_uid 中的 ID,但这对我不起作用但删除了文件,creator_uid 成功了。

我 运行 遇到了同样的问题,但在我的情况下,这是因为我在 sudo 下有 运行 vagrant up,当我稍后回来时我忘记了。

愚蠢的错误,但我敢肯定这不是第一次有人 :)

运行 以下命令:

bash
sudo vagrant up

我买了新电脑后遇到了同样的问题。我没有从我的旧计算机上复制所有文件,而是不得不从 git 存储库中再次 检查 vagrant 项目。在那之后,vagrant up 工作正常。

您可能 运行 命令:sudo vagrant up

这意味着作为普通用户,您无法查看甚至删除 /.vagrant 文件夹和文件。

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

那么您应该可以运行(作为您的普通用户帐户):vagrant up

只需在此处更改用户 ID .vagrant/machines/default/virtualbox/creator_uid

只是为了补充 Fred 的 回答。

确保您更改了正确的 VM 机器。例如,我的 VM 名称不是默认名称,而是称为 homestead-7。

所以正确的路径是:

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

而不是:

.vagrant/machines/default/virtualbox/creator_uid

当我将 Mac 更改为另一个 Mac 时,我发生了这个错误。

删除当前工作目录中.vagrant隐藏目录的内容,重新运行vagrant up命令。 错误,因为 Vagranfile /s 从一个系统复制/备份到另一个系统。用户 id 对 Vagrant 提出环境的误解.. 希望它能帮助欢呼..!! :)) 如果您不想删除该文件夹,您可以在当前工作目录的隐藏目录中更新文件中当前用户的 uid,即 .vagrant/machines/jenkins/virtualbox$ vim creator_uid

我遇到过同样的情况,但我有一个 multi-machine Vagrantfile。

要用新的 (1000) 替换旧的 uid (1001),我使用了以下命令:

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

我遇到了同样的问题,我忘记在 vagrant up 之前放置 sudo,你只需要在你的 vagrant 文件的文件夹中执行 sudo vagrant up

我有多机 vagrant 文件。我已经检查了 creator_uid 并且它是 0 但仍然无法加载。所以我删除了所有 Multi-Machine 的 creator_uid 文件并且它起作用了。路径应该是 .vagrant\machines\<machine_name>\virtualbox

我遇到了同样的问题,但这是因为我从 GitHub 存储库克隆了一个练习文件。我发现问题出在存储库中包含的 .vagrant 文件。

对我有用的是删除 .vagrant 目录并重新运行 vagrant up

rm -rf .vagrant/machines/default/creator_uid