流浪者没有启动。创建 VM 的用户与当前用户不匹配

Posted

技术标签:

【中文标题】流浪者没有启动。创建 VM 的用户与当前用户不匹配【英文标题】:Vagrant Not Starting Up. User that created VM doesn't match current user 【发布时间】:2015-10-17 02:45:40 【问题描述】:

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

vagrant up && vagrant ssh

但我收到以下错误消息:

VirtualBox 虚拟机是使用不匹配的用户创建的 当前运行 Vagrant 的用户。 VirtualBox 要求同一用户 用于管理创建的 VM。请重新运行 Vagrant 那个用户。这不是 Vagrant 问题。

用于创建 VM 的 UID 是:0 您的 UID 是:501

我也尝试过使用 sudo,但这也没有用。

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

【问题讨论】:

【参考方案1】:

rm -rf .vagrant/machines/default/creator_uid

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

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

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

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

【讨论】:

【参考方案6】:

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

【讨论】:

【参考方案7】:

只是为了补充 Fred 的 https://***.com/a/32256848/2065804 答案。

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

所以正确的路径是:

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

而不是:

.vagrant/machines/default/virtualbox/creator_uid

当我将我的 Mac 更换为另一台 Mac 时,这个错误发生在我身上。

【讨论】:

【参考方案8】:

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

【讨论】:

【参考方案9】:

您可能运行了以下命令:sudo vagrant up

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

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

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

【讨论】:

【参考方案10】:

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

我保存文件后,命令 vagrant up 就像一个冠军。

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

【讨论】:

我发现自己处于同样的境地,我从 ubuntu 机器上 tar 了一个 tarball。因此,只需删除在 ubuntu 中创建的 rm -rf .vagrant 目录也可以解决问题。 // 哇,谢谢@Fred! *** 为我们提供了最好的解决方案,这种精确的、难以从以前不得不处理它的人那里找到的解决方案。在基于 Unix 的机器上,我通常会在哪里找到 .vagrant 文件夹? 不确定,@Nathan。您可以为 creator_uid 文件运行定位命令吗?尝试在命令行“locate creator_uid”找到要编辑的文件的路径。 在我的例子中,creator_uid 包含“90210”,但我的 UID 是 502。我没有按照此解决方案的建议将文件中的 UID 更改为 0,而是将其更改为 502。效果很好。 @NathanBasanese .vagrant 文件夹与您运行 vagrant up 的位置相同【参考方案11】:

我换了一台新电脑后也遇到了同样的问题。我不必从旧计算机上复制所有文件,而是必须从 git 存储库中再次签出 vagrant 项目。之后,vagrant up 工作正常。

【讨论】:

【参考方案12】:

运行以下命令:

bash
sudo vagrant up

【讨论】:

【参考方案13】:

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

愚蠢的错误,但我敢肯定这不是第一次发生这样的事情:)

【讨论】:

同样的问题,忘记在sudo下运行。但不幸的是,错误消息并不能很好地表明这一点。 这里也一样。使用了sudo vagrant up,但随后使用了vagrant ssh,这引发了不同的用户错误。忘记使用 sudo vagrnt ssh 工作正常。【参考方案14】:

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

【讨论】:

【参考方案15】:

在稍微不同的情况下遇到了这个问题。问题是“.vagrant”被签入了 git repo,并且提交者在与我不同的 UID 下运行。

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

【讨论】:

这是我面临的问题;然而,简单地将.vagrant 添加到.gitignore不会解决问题 - YMMV,但 git rm -rf .vagrant 也应该运行。 @marco:你说得对。如果将“.vagrant”添加到 repo,之后将其添加到 .gitignore 为时已晚:)【参考方案16】:

根据VirtualBox User Manual:

作为一种安全措施,Linux 内部网络的实现 只允许在同一用户 ID 下运行的虚拟机建立 内部网络。

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

【讨论】:

不应该以 sudo 身份运行,只需删除你的 .vagrant 目录并以你的用户身份运行

以上是关于流浪者没有启动。创建 VM 的用户与当前用户不匹配的主要内容,如果未能解决你的问题,请参考以下文章

[QNX Hypervisor 2.2用户手册]7.3 OS-VM配置不匹配

markdown 将现有虚拟机VM与流浪者项目相关联

Xamarin.Forms DateTime.Now() 日期与当前日期不匹配

如何设置由云功能启动的VM的默认用户?

流浪者可以使用多少硬盘空间?

[QNX Hypervisor 2.2用户手册]5.4 启动VM