VM 已变为 'inaccessible' - Vagrant 不再工作
VM has become 'inaccessible' - Vagrant no longer working
出于某种原因,今天早上当我 运行 'vagrant up' 时,我收到以下错误(这在一年多的时间里一直工作得很好)
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.
我可以尝试删除我现有的 .vagrant 文件夹并执行 vagrant up 操作,但由于我们的网速非常慢,这将永远持续下去 - 谁能建议如何快速解决此问题?
这对我有用
在对调试输出进行一些挖掘之后,我发现即使实际的 VM 完好无损(我可以从 VirtualBox GUI 应用程序加载并 运行 它),但在它的某个地方,VirtualBox 标记了这个 VM作为 ””。 Vagrant 信以为真,吐出了错误信息。
查看 VBoxManage 的帮助后,我发现它的一个命令 list 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}
其中一个标记为无法访问的 VM 是我丢失的 VM!是时候修复 VBoxManage 的旅行车了,通过取消注册 VM 为不可访问,然后用正确的名称重新注册它:
- 打开丢失的 VM 的配置文件。我的已保存到
C:\cygwin\home\Philip\VirtualBox VMs\rails-vm-v2\rails-vm-v2.vbox
- 查找并复制 Machine 节点的 uuid 属性的值。我的是
9709d3d5-ce4d-42b9-ad5e-07726823fd02.
在 Windows 命令提示符(或 Cygwin 终端)中,使用步骤 2 中的 [uuid]
值,使用 unregistervm
命令注销虚拟机:
$ C:\Program Files\Oracle\VirtualBox\VBoxManage.exe unregistervm [uuid]
现在使用 registervm 命令注册虚拟机,使用虚拟机配置文件的路径:
$ C:\Program Files\Oracle\VirtualBox\VBoxManage.exe registervm C:\cygwin\home\Philip\Virtual VMs\rails-vm-v2\rails-vm-v2.vbox
现在您应该可以按预期启动虚拟机了。
来源:
http://www.psteiner.com/2013/04/vagrant-how-to-fix-vm-inaccessible-error.html
这对我有用:
在我的 "C:\Users{user}\VirtualBox VMs{vm-id}" 文件夹中有两个文件
- {vm-id}.vbox-prev
- {vm-id}.vbox-tmp
从“{vm-id}.vbox-tmp”重命名为“{vm-id}.vbox”解决了我的问题,我可以打电话给 "vagrant up"
您只需从项目文件夹中删除 .vagrant 文件夹,然后 运行 重新启动 vagrant。
使用以下命令之一找到无法访问的那个:
$ vagrant global-status
或:
$ VBoxManage list vms
然后记下 GUID,并将其从 VirtualBox.xml
文件中删除 (OS X: ~/Library/VirtualBox/VirtualBox.xml
, Windows: %HOME%/.VirtualBox
).
或者从您的 VM 所在的文件夹中删除 .vagrant
文件夹,然后从头开始 (vagrant up
)。
另请参阅:Cannot Delete "Inaccessible" virtual machines from Virtualbox GUI 在 VirtualBox
这里没有对我有用的东西。
- 我删除了(或重命名见第一条评论)来自
的所有文件
C:\Users[YourNameHere].VirtualBox
运行 再次流浪:
vagrant up
现在开始了。
我的问题是一样的,但解决方法却大不相同...我的虚拟机存储在网络驱动器上,可通过 NFS 共享访问。远程驱动器在重启后无法启动,因此无法访问虚拟机。
我花了一段时间才意识到原因,同时在没有解决方案的情况下到处寻找。
然后我意识到,捂脸,安装路径,一切都奏效了。
所以简而言之,这是一个路径问题。
我觉得我应该把它包括在这里,以防它帮助到同一条船上的人。
VirtualBox Manager 可能会为您提供更多有用的信息,例如在我的案例中,它报告 .vbox
文件不存在。
查看后问题确实是该文件不存在 - 某些东西已将其重命名为 x.vbox-tmp
(关闭 PC 与 VM 仍然 运行 也许?)
我将 x.vbox-prev
文件复制到 x.vbox
并尝试再次启动 VM,一切正常。
我不得不将 [vm-id].vbox-tmp(在 VirtualBox 虚拟机上)重命名为 [vm-id].vbox。之后,在不删除 .vagrant 文件夹的情况下,我可以 运行 vagrant up 并且效果很好。
如果有人手动从 VirtualBox VMs 文件夹中删除您的虚拟机,在这种情况下您的虚拟机也将无法访问。但是,您将无法取回您的机器,但 vagrant 仍会在列表中显示您的虚拟机。要将其从 vm 列表中完全删除,请转到
\.vagrant.d\data\machine-index
并打开索引文件。删除不可访问机器的引用。下次当你运行下面的命令时,它不会显示你无法访问的机器。
vagrant global-status --prune
在 Linux 上,以下将注销机器:
VBoxManage list vms
VBoxManage unregistervm <inaccessible machine UID>
之后您可能需要重新启动 VB 服务:
sudo /sbin/vboxconfig
删除 .vagrant
文件夹可能会有帮助,但您必须重建机器。
通过使用命令行,您可以使用一行代码删除所有无法访问的框:
VBoxManage list vms |grep inaccessible |cut -d "{" -f2 |cut -d "}" -f1 |xargs -L1 VBoxManage unregistervm
我也遇到了这个问题。
重新启动 macOS virtualbox 后更改 virtualBox 的目录时,所有 vms 都无法访问。
我的解决方案奏效了。
只需将虚拟框移动到默认目录即可。
从 gui 中删除所有不可访问的虚拟机,然后从默认路径下一个 运行 注册虚拟机。
或
vagrant up
出于某种原因,今天早上当我 运行 'vagrant up' 时,我收到以下错误(这在一年多的时间里一直工作得很好)
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.
我可以尝试删除我现有的 .vagrant 文件夹并执行 vagrant up 操作,但由于我们的网速非常慢,这将永远持续下去 - 谁能建议如何快速解决此问题?
这对我有用
在对调试输出进行一些挖掘之后,我发现即使实际的 VM 完好无损(我可以从 VirtualBox GUI 应用程序加载并 运行 它),但在它的某个地方,VirtualBox 标记了这个 VM作为 ””。 Vagrant 信以为真,吐出了错误信息。
查看 VBoxManage 的帮助后,我发现它的一个命令 list 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}
其中一个标记为无法访问的 VM 是我丢失的 VM!是时候修复 VBoxManage 的旅行车了,通过取消注册 VM 为不可访问,然后用正确的名称重新注册它:
- 打开丢失的 VM 的配置文件。我的已保存到
C:\cygwin\home\Philip\VirtualBox VMs\rails-vm-v2\rails-vm-v2.vbox
- 查找并复制 Machine 节点的 uuid 属性的值。我的是
9709d3d5-ce4d-42b9-ad5e-07726823fd02.
在 Windows 命令提示符(或 Cygwin 终端)中,使用步骤 2 中的
[uuid]
值,使用unregistervm
命令注销虚拟机:$ C:\Program Files\Oracle\VirtualBox\VBoxManage.exe unregistervm [uuid]
现在使用 registervm 命令注册虚拟机,使用虚拟机配置文件的路径:
$ C:\Program Files\Oracle\VirtualBox\VBoxManage.exe registervm C:\cygwin\home\Philip\Virtual VMs\rails-vm-v2\rails-vm-v2.vbox
现在您应该可以按预期启动虚拟机了。
来源: http://www.psteiner.com/2013/04/vagrant-how-to-fix-vm-inaccessible-error.html
这对我有用:
在我的 "C:\Users{user}\VirtualBox VMs{vm-id}" 文件夹中有两个文件
- {vm-id}.vbox-prev
- {vm-id}.vbox-tmp
从“{vm-id}.vbox-tmp”重命名为“{vm-id}.vbox”解决了我的问题,我可以打电话给 "vagrant up"
您只需从项目文件夹中删除 .vagrant 文件夹,然后 运行 重新启动 vagrant。
使用以下命令之一找到无法访问的那个:
$ vagrant global-status
或:
$ VBoxManage list vms
然后记下 GUID,并将其从 VirtualBox.xml
文件中删除 (OS X: ~/Library/VirtualBox/VirtualBox.xml
, Windows: %HOME%/.VirtualBox
).
或者从您的 VM 所在的文件夹中删除 .vagrant
文件夹,然后从头开始 (vagrant up
)。
另请参阅:Cannot Delete "Inaccessible" virtual machines from Virtualbox GUI 在 VirtualBox
这里没有对我有用的东西。
- 我删除了(或重命名见第一条评论)来自 的所有文件
C:\Users[YourNameHere].VirtualBox
运行 再次流浪:
vagrant up
现在开始了。
我的问题是一样的,但解决方法却大不相同...我的虚拟机存储在网络驱动器上,可通过 NFS 共享访问。远程驱动器在重启后无法启动,因此无法访问虚拟机。 我花了一段时间才意识到原因,同时在没有解决方案的情况下到处寻找。
然后我意识到,捂脸,安装路径,一切都奏效了。
所以简而言之,这是一个路径问题。
我觉得我应该把它包括在这里,以防它帮助到同一条船上的人。
VirtualBox Manager 可能会为您提供更多有用的信息,例如在我的案例中,它报告 .vbox
文件不存在。
查看后问题确实是该文件不存在 - 某些东西已将其重命名为 x.vbox-tmp
(关闭 PC 与 VM 仍然 运行 也许?)
我将 x.vbox-prev
文件复制到 x.vbox
并尝试再次启动 VM,一切正常。
我不得不将 [vm-id].vbox-tmp(在 VirtualBox 虚拟机上)重命名为 [vm-id].vbox。之后,在不删除 .vagrant 文件夹的情况下,我可以 运行 vagrant up 并且效果很好。
如果有人手动从 VirtualBox VMs 文件夹中删除您的虚拟机,在这种情况下您的虚拟机也将无法访问。但是,您将无法取回您的机器,但 vagrant 仍会在列表中显示您的虚拟机。要将其从 vm 列表中完全删除,请转到
\.vagrant.d\data\machine-index
并打开索引文件。删除不可访问机器的引用。下次当你运行下面的命令时,它不会显示你无法访问的机器。
vagrant global-status --prune
在 Linux 上,以下将注销机器:
VBoxManage list vms
VBoxManage unregistervm <inaccessible machine UID>
之后您可能需要重新启动 VB 服务:
sudo /sbin/vboxconfig
删除 .vagrant
文件夹可能会有帮助,但您必须重建机器。
通过使用命令行,您可以使用一行代码删除所有无法访问的框:
VBoxManage list vms |grep inaccessible |cut -d "{" -f2 |cut -d "}" -f1 |xargs -L1 VBoxManage unregistervm
我也遇到了这个问题。 重新启动 macOS virtualbox 后更改 virtualBox 的目录时,所有 vms 都无法访问。
我的解决方案奏效了。
只需将虚拟框移动到默认目录即可。 从 gui 中删除所有不可访问的虚拟机,然后从默认路径下一个 运行 注册虚拟机。
或
vagrant up