在Vagrant VM中工作并进行一些更改后,我将使用vagrant suspend暂停VM。如果我然后重新启动主机,然后尝试运行流浪汉恢复,终端稍微停留一下,然后让我回到命令提示符,没有任何反馈。所以,我自然然后尝试流浪汉ssh,我收到以下内容:
必须运行VM才能打开SSH连接。运行
vagrant up
以启动虚拟机。
如果我运行流浪汉,我发现在暂停之前我所做的所有更改都被基本框导入覆盖。
这是预期的行为吗?我很流氓Windows 8专业版x64。
答案 0 :(得分:6)
vagrant的想法是使用基本框,然后使用配置方法进行自定义。因此,总是vagrant destroy
(删除VM的所有数据)和vagrant up
根据基本框再次构建该框应该有效。
无论如何,你没有做vagrant destroy
数据仍应存在。
如果您执行了vagrant suspend
,则表示虚拟框冻结了状态框。
接下来,您应该vagrant resume
:http://docs.vagrantup.com/v2/cli/resume.html
但如果你之间有vagrant up
,数据可能会丢失。您可以打开VirtualBox GUI并查看是否仍有一些保留的快照。
答案 1 :(得分:4)
这种情况经常发生在我身上,我重新开始,我的流浪机已经没有了。即使正在运行vboxmanage list vms
也无法显示我的虚拟机,但如果我再次重新启动计算机,这次我会在尝试执行vboxmanage list vms
之前打开Virtualbox GUI(或者先打开它取决于在以前的尝试失败的方式)并且它将列出我的Vagrant机器及其ID。
有了这个ID,我可以进入.vagrant / machines / default / virtualbox /并创建一个名为" id"并添加一行包含vagrant机器的id。在那之后你可以用vagrant up
启动它,它可能是最安全的添加--no-provision尽管它已经发生了,即使机器已经存在它也开始供应..
答案 2 :(得分:2)
我建议为您计划使用的每个VM创建一个项目目录。如果在执行vagrant init
之前更改为该空项目目录,则会为该项目/ VM创建专用Vagrantfile
,然后可以根据您的需要进行自定义。要使用该自定义Vagrantfile
,只需从项目目录中运行vagrant up
即可。不确定这是否解决了你的问题,但我觉得值得一试。 ; - )
顺便说一下。您可以使用命令vagrant status [machine-name]
检查您的VM是否正在运行。
答案 3 :(得分:1)
我刚刚遇到了一个类似的情况,并最终发现有一个情况,一个“流浪汉”暂停'有效地破坏了VM。那个在虚拟机4.3.14作为虚拟化提供商的Windows主机上运行Vagrant。滚动虚拟框回到4.3.12是一种解决问题的方法。详情请见https://github.com/mitchellh/vagrant/issues/4276