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

Zab*_*abs 38 virtualbox virtual-machine windows-7 vagrant

出于某种原因,今天早上当我跑' 流浪汉 '时,我得到以下错误(这已经超过一年完全正常)

Your VM has become "inaccessible". Unfortunately, this is a critical error with VirtualBox that Vagrant can not cleanly recover from. Please open VirtualBox and clear out your inaccessible virtual machines or find a way to fix them.
Run Code Online (Sandbox Code Playgroud)

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

Ult*_*ter 117

这对我有用:

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

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

从"{vm-id} .vbox-tmp"重命名为"{vm-id} .vbox"解决了我的问题,我可以称之为"流浪汉"

  • 也可以在 Win10 上工作。节省了我很多时间谢谢! (3认同)

小智 28

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

  • 删除.vagrant文​​件夹可能会导致vagrant从头开始重新创建VM.如果您需要修复损坏的VM,这可能不是正确的方法.如果VM完全是一次性的并且可以重新创建,那么这是解决问题的简单方法. (4认同)

Zab*_*abs 12

这对我有用

在深入研究调试输出之后,我发现尽管实际的虚拟机是完整的(我可以从VirtualBox GUI应用程序加载并运行它),但在其内部的某处,VirtualBox将此虚拟机标记为"".Vagrant,正确地相信它被告知的内容,吐出错误信息.

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

$ /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}
Run Code Online (Sandbox Code Playgroud)

标记为无法访问的其中一个虚拟机是我丢失的虚拟机!是时候通过取消注册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,使用[uuid]步骤2中的值,使用该命令取消注册VM :

    $ C:\Program Files\Oracle\VirtualBox\VBoxManage.exe unregistervm [uuid]
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)

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

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


osa*_*ger 7

这里没有什么对我有用.

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

C:\用户[YourNameHere] .VirtualBox

  1. 再次运行vagrant:

    vagrant up

现在它了.

  • 这对我有用,重命名我的.VirtualBox只是加入并运行hometead up/vagrant up. (2认同)

小智 6

VirtualBox Manager 可能会为您提供更多有用的信息,例如在我的情况下,它报告该.vbox文件不存在。

在查看之后,问题确实是该文件不存在 - 某些东西已将其重命名为x.vbox-tmp(在 VM 仍在运行的情况下关闭 PC?)

我将x.vbox-prev文件复制到x.vbox并尝试再次启动虚拟机,一切正常。


ken*_*orb 5

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

$ vagrant global-status
Run Code Online (Sandbox Code Playgroud)

或者:

$ VBoxManage list vms
Run Code Online (Sandbox Code Playgroud)

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

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

另请参阅:无法从VirtualBox 的Virtualbox GUI删除“无法访问”的虚拟机