【问题标题】:Vagrant Not Starting Up. User that created VM doesn't match current user流浪者没有启动。创建 VM 的用户与当前用户不匹配
【发布时间】: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 吗?我该怎么做?

【问题讨论】:

    标签: vagrant virtual-machine virtualbox virtualenv


    【解决方案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://stackoverflow.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! Stackoverflow 为我们提供了最好的解决方案,这种精确的、难以从以前不得不处理它的人那里找到的解决方案。在基于 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 目录并以你的用户身份运行
                          猜你喜欢
                          • 2016-08-06
                          • 2011-04-04
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2013-07-25
                          • 2022-06-12
                          • 1970-01-01
                          相关资源
                          最近更新 更多