当我运行vagrant时,会创建一个新的virtualbox机器,而不是运行在其中标识的虚拟机.vagrant\machines\default\virtualbox\id.然后将新虚拟机的ID写入id文件.
我的VM:
C:\Users\Chris>vboxmanage list vms
"MyVM_1373377014" {177aef6c-b9ec-4a85-adad-76c70f80fa62}
Run Code Online (Sandbox Code Playgroud)
下一个:
C:\Users\Chris>echo 177aef6c-b9ec-4a85-adad-76c70f80fa62 > .vagrant\machines\default\virtualbox\id
其次是:
C:\Users\Chris>vagrant up
新VM中的结果:
C:\Users\Chris>vboxmanage list vms
"MyVM_1373377014" {177aef6c-b9ec-4a85-adad-76c70f80fa62}
"MyVM_1373566342" {4fedb342-cc0b-40fd-a8d1-403049065274}
Run Code Online (Sandbox Code Playgroud)
并id包含新的VM ID:
C:\Users\Chris>type .vagrant\machines\default\virtualbox\id
4fedb342-cc0b-40fd-a8d1-403049065274
Run Code Online (Sandbox Code Playgroud)
因此,出于某种原因创建新VM而不是启动现有VM.
我正在运行Vagrant版本1.2.3
Chr*_*now 16
确保未在ID中添加换行符.因此,而不是:
echo "177aef6c-b9ec-4a85-adad-76c70f80fa62" > .vagrant/machines/default/virtualbox/id
我不得不这样做:
echo -n "177aef6c-b9ec-4a85-adad-76c70f80fa62" > .vagrant/machines/default/virtualbox/id
注意-n切换到echo命令.
资料来源: