VM已经“无法访问” - Vagrant不再工作

时间:2015-06-05 09:15:43

标签: windows-7 vagrant virtual-machine virtualbox

出于某种原因,今天早上当我运行' vagrant up '时,我收到以下错误(这已经超过一年了,这已经很好了)

 script test.log
 exit

我可以尝试删除我现有的.vagrant文​​件夹并进行流浪,但这将永远需要我们非常慢的网速 - 有人可以建议如何快速解决这个问题吗?

12 个答案:

答案 0 :(得分:104)

这对我有用:

在我的" C:\ Users {user} \ VirtualBox VMs {vm-id}"文件夹是两个文件

  • {VM-ID} .vbox-分组
  • {VM-ID} .vbox-TMP

从" {vm-id}重命名.vbox-tmp"到" {vm-id} .vbox"解决了我的问题,我可以打电话"流浪汉"

答案 1 :(得分:27)

您只需从项目文件夹中删除.vagrant文​​件夹,然后再次运行vagrant。

答案 2 :(得分:12)

这对我有用

经过一些挖掘调试输出后,我发现尽管实际的虚拟机完好无损(我可以从VirtualBox GUI应用程序加载并运行它),但在其内部的某处,VirtualBox将此虚拟机标记为“”。 Vagrant,正确地相信它被告知的内容,吐出错误信息。

在查看了VBoxManage的帮助之后,我发现其命令列表vms,毫不奇怪地列出了所有使用VirtualBox注册的虚拟机:

$ /cygdrive/c/Program\ Files/Oracle/VirtualBox/VBoxManage.exe list vms
"precise64" {3613de48-6295-4a91-81fd-36e936beda4b}
"<inaccessible>" {2568227e-e73d-4056-978e-9ae8596493d9}
"<inaccessible>" {0fb42965-61cb-4388-89c4-de572d4ea7fc}
"<inaccessible>" {c65b1456-5771-4617-a6fb-869dffebeddd}
"<inaccessible>" {9709d3d5-ce4d-42b9-ad5e-07726823fd02}

其中一个标记为无法访问的虚拟机是我丢失的虚拟机!是时候通过取消注册VM无法访问来修复VBoxManage的旅行车,然后用正确的名称重新注册它:

  1. 打开丢失的VM的配置文件。我被保存到C:\cygwin\home\Philip\VirtualBox VMs\rails-vm-v2\rails-vm-v2.vbox
  2. 查找并复制Machine节点的uuid属性的值。我是9709d3d5-ce4d-42b9-ad5e-07726823fd02.
  3. 在Windows命令提示符(或Cygwin终端)中,使用unregistervm命令取消注册VM,使用步骤2中的[uuid]值:

    $ C:\Program Files\Oracle\VirtualBox\VBoxManage.exe unregistervm [uuid]
    
  4. 现在使用registervm命令注册VM,其中包含VM配置文件的路径:

    $ C:\Program Files\Oracle\VirtualBox\VBoxManage.exe registervm C:\cygwin\home\Philip\Virtual VMs\rails-vm-v2\rails-vm-v2.vbox
    

    现在您应该能够按预期启动VM。

  5. 资料来源: http://www.psteiner.com/2013/04/vagrant-how-to-fix-vm-inaccessible-error.html

答案 3 :(得分:7)

这里没有什么对我有用。

  1. 我删除了(或重命名见第一条评论)来自
  2. 的所有文件
      

    C:\用户[YourNameHere] .VirtualBox

    1. 再次运行流浪汉:

      vagrant up

    2. 现在它已经结束了。

答案 4 :(得分:4)

使用以下命令之一找到无法访问的那个:

$ vagrant global-status

或:

$ VBoxManage list vms

然后记下GUID,并将其从VirtualBox.xml文件中删除(OS X:~/Library/VirtualBox/VirtualBox.xml,Windows:%HOME%/.VirtualBox)。

或者从您的VM所在的文件夹中删除.vagrant文件夹,然后从头开始(vagrant up)。

另见:VirtualBox的Cannot Delete "Inaccessible" virtual machines from Virtualbox GUI

答案 5 :(得分:4)

VirtualBox Manager will likely give you a bit more useful information, for example in my case it reported that the .vbox file did not exist.

After taking a look the problem was indeed that the file didn't exist - something had renamed it to x.vbox-tmp (shutting the PC down with the VM still running maybe?)

I copied the x.vbox-prev file to x.vbox and tried booting the VM again and everything worked fine.

答案 6 :(得分:3)

如果有人手动从VirtualBox VMs文件夹中删除您的虚拟机,那么在这种情况下您的虚拟机也将无法访问。但是,您将无法恢复计算机,但流浪汉仍然会在列表中显示您的虚拟机。要从vm列表中完全删除它,请转到

\.vagrant.d\data\machine-index 

并打开索引文件。删除无法访问的机器的参考。下次运行以下命令时,它将不会显示您无法访问的机器。

vagrant global-status --prune

答案 7 :(得分:2)

我的问题是一样的,但修复方法完全不同......我的虚拟机存储在网络驱动器上,可由NFS共享访问。重启后远程驱动器无法启动,因此无法访问VM。 花了一段时间才意识到原因,同时在没有解决方案的情况下全力以赴。

然后我意识到,面对面,安装了路径,这一切都奏效了。

简而言之,这是一个路径问题。

我觉得我应该把它包括在这里,以防它帮助同一条船的人。

答案 8 :(得分:0)

我不得不将[vm-id] .vbox-tmp(在VirtualBox VM上)重命名为[vm-id] .vbox。之后,在没有删除.vagrant文​​件夹的情况下,我可以运行流浪汉并且它运行良好。

答案 9 :(得分:0)

在Linux上,以下内容将取消注册计算机:

VBoxManage list vms
VBoxManage unregistervm <inaccessible machine UID>

之后,您可能需要重新启动VB服务:

sudo /sbin/vboxconfig

删除.vagrant文件夹可能会有所帮助,但您必须重建机器。

答案 10 :(得分:0)

通过使用命令行,您可以使用单线删除所有无法访问的框:

VBoxManage list vms |grep inaccessible |cut -d "{" -f2 |cut -d "}" -f1 |xargs -L1 VBoxManage unregistervm 

答案 11 :(得分:0)

我也有这个问题。 在重新启动macOS virtualbox之后更改virtualBox的目录时,所有vm都无法访问。

我的解决方案有效。

只需将虚拟框移动到默认目录即可。 从gui中删除所有无法访问的虚拟机,然后从默认路径注册虚拟机,然后运行它。

vagrant up