如何切换Vagrant虚拟机?

时间:2013-09-30 22:15:34

标签: ubuntu virtualbox vagrant

当我意识到我需要通过端口8000访问它以测试Web界面时,我正在使用Vagrant设置的虚拟机上工作,所以我做了vagrant halt以修改Vagrantfile和转发端口8000然后我保存了文件并做了vagrant up 引导备份那台机器,让我惊讶的是,Vagrant从零开始构建了一台新机器。现在,当我查看名为“VirtualBox VMs”的文件夹时,我可以看到两个名称相同的VM +一个不同的长号。我相信一个是我想用我的所有包和设置启动的第一台机器,而另一台是新的空机器。 我如何切换回第一个,所以当我vagrant up它实际启动那个?并且可选地如何摆脱新的空的?

2 个答案:

答案 0 :(得分:7)

我的理解是每个Vagrant项目目录(Vagrantfile的主页)与VirtualBox(默认提供程序)中由vagrant管理的虚拟机相关联。通常采用“baseboxname_id”模式。

您的问题可能是由旧Vagrant版本中的错误引起的。请确保您运行的是最新的Vagrant 1.3.3 + VirtualBox 4.2.18。或者,可能混合多个Vagrantfile(根据您的描述可能不是这种情况)。

计算出流浪盒的ID

  1. 将目录更改为Vagrantfile所在的目录
  2. 查看=>的内容 /path/to/Vagrantfile/.vagrant/.vagrant/machines/default/virtualbox/id, 你会得到像a90df491-4c25-4a07-be1a-be137908058c这样的ID。

      

    注意:这个   是与Vagrantfile关联的虚拟机的uuid   由VirtulBox管理。

  3.   

         

    删除新的/空VM

    现在您知道了uuid,您可以unregister VM并将其删除=&gt; VBoxManage unregistervm <uuid> --delete

    Vagrantfile与第一个VM重新关联

    1. 获取VirtualBox管理的VM名称和uuids列表
    2. 将{id}替换为/path/to/Vagrantfile/.vagrant/.vagrant/machines/default/virtualbox/id
    3. 中第一个虚拟机的uuid
    4. 使第一个VM上升=&gt; vagrant up
    5. 完成!

答案 1 :(得分:0)

如上所述,收集所需的vm id,例如:

`vboxmanagevm list vms`

然后用所需的id替换$ vagrant_base_dir / .vagrant / machines / default / virtualbox / id的内容。

上面没有提到的是文件需要是一行而没有换行或回车: 尝试类似:

tr -d '\n' < id > id

找到了这个花絮How do I associate a Vagrant project directory with an existing VirtualBox VM?

希望这有助于任何找到它的人。