我今天遇到了这个不起眼的东西,所以我想我会在这里发布解决方案以供后代使用:)
在Windows下,当您在普通命令行/ Powershell中创建一个流浪盒时,该框工作正常,所有更改都会持续存在。
但是,有时当您执行 vagrant up 时,即使您可以在Vagrantfile的目录中清楚地看到.vagrant/machines/default/
结构,它的行为就像您的盒子从未存在过一样存在于例如。 C:\Users\<yourname>\VirtualBox VMs\
基本上你会得到一个空的&#34;框。
答案 0 :(得分:0)
原因是您基本上是以不同的用户身份运行它。由于这些框存储在Windows中的特定于用户的目录中,因此基本上就是 - 当前用户不存在该框。
尝试在提升的命令行中执行vagrant up
时会发生这种情况(以管理员身份运行)。你不再以自己的身份运行它了,而是作为管理员。除非管理员帐户在C:\Users\<admin>\VirtualBox VMs\
中有自己的虚拟框,否则它将为空。它将是一个不相关的框,即使使用与vagrant up
完全相同的Vagrant文件。
但这还不是全部,你需要做一件大事真的小心:
如果您在提升的控制台中执行vagrant up
,则在最初以普通用户身份创建后,原始框配置将消失!,这意味着如果再次执行vagrant up
作为普通控制台中的普通用户,您将不再在框中看到任何自定义项。然而,好消息是它不会永久消失,但你需要做一些手动步骤将其恢复正常:
cd C:\Program Files\Oracle\VirtualBox\
VBoxManage.exe list vms
"ubuntu1604_default_1508830573432_14276" {4a7e6cf3-c611-42b4-a5c2-5760314f7169}
"ubuntu1604_default_1509090573432_27275" {abcdef23-c613-62b4-55c2-aa60314f7169}
default
之后的第一部分会有一个较小的值,所以在上面的例子中第一行是原始的(150883 < 150909
)4a7e6cf3-c611-42b4-a5c2-5760314f7169
)。C:\Path\To\Project\.vagrant\machines\virtualbox\default\id
vagrant up
。它应该再次启动到您的原始框中,并且您的所有配置和设置应该仍然存在。希望这有帮助!