做流浪汉时没有看到/检测到的流浪者盒子

时间:2017-10-26 12:21:34

标签: windows vagrant

我今天遇到了这个不起眼的东西,所以我想我会在这里发布解决方案以供后代使用:)

在Windows下,当您在普通命令行/ Powershell中创建一个流浪盒时,该框工作正常,所有更改都会持续存在。

但是,有时当您执行 vagrant up 时,即使您可以在Vagrantfile的目录中清楚地看到.vagrant/machines/default/结构,它的行为就像您的盒子从未存在过一样存在于例如。 C:\Users\<yourname>\VirtualBox VMs\

基本上你会得到一个空的&#34;框。

1 个答案:

答案 0 :(得分:0)

原因是您基本上是以不同的用户身份运行它。由于这些框存储在Windows中的特定于用户的目录中,因此基本上就是 - 当前用户不存在该框。

尝试在提升的命令行中执行vagrant up时会发生这种情况(以管理员身份运行)。你不再以自己的身份运行它了,而是作为管理员。除非管理员帐户在C:\Users\<admin>\VirtualBox VMs\中有自己的虚拟框,否则它将为空。它将是一个不相关的框,即使使用与vagrant up完全相同的Vagrant文​​件。

但这还不是全部,你需要做一件大事真的小心:

如果您在提升的控制台中执行vagrant up,则在最初以普通用户身份创建后,原始框配置将消失!,这意味着如果再次执行vagrant up作为普通控制台中的普通用户,您将不再在框中看到任何自定义项。然而,好消息是它不会永久消失,但你需要做一些手动步骤将其恢复正常:

  1. 在控制台中,cd C:\Program Files\Oracle\VirtualBox\
  2. 然后运行:VBoxManage.exe list vms
  3. 输出类似于: "ubuntu1604_default_1508830573432_14276" {4a7e6cf3-c611-42b4-a5c2-5760314f7169} "ubuntu1604_default_1509090573432_27275" {abcdef23-c613-62b4-55c2-aa60314f7169}
  4. 你需要找出哪一个是第一个。我不是百分百肯定,但我认为第一部分在default之后的第一部分会有一个较小的值,所以在上面的例子中第一行是原始的(150883 < 150909
  5. 将UUID复制到原始版本的末尾(4a7e6cf3-c611-42b4-a5c2-5760314f7169)。
  6. 然后在C:\Path\To\Project\.vagrant\machines\virtualbox\default\id
  7. 中修改文件
  8. 在步骤5中将文件的内容从存在的任何内容(很可能是第二行行的UUID)更改为UUID。
  9. 保存文件
  10. 现在,在普通控制台中执行vagrant up。它应该再次启动到您的原始框中,并且您的所有配置和设置应该仍然存在。
  11. 希望这有帮助!