流浪者没有启动。创建 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配置不匹配