我正在使用托管在 Windows 7 上的 VirtualBox,并且我的一个 VM 的 VDI 文件所在的物理硬盘驱动器已完全损坏并且不再存在。
问题是现在我无法删除虚拟硬盘或 VM,因为尝试删除 VDI 文件时出现错误,指出 VirtualBox 找不到该文件,当然,如果不先释放(或删除)该机器正在使用的 VDI 文件,我就无法删除 VM。
更新:请注意,我还删除了所有存储附件,并且由于同样的原因,快照无法被删除——它找不到文件(因为硬盘不存在)。
有人知道解决办法吗?
答案1
删除硬盘上的 VM xml 文件。它们默认位于C:\Users\YOUR_NAME\.VirtualBox\Machines
。
删除后,您仍会在 Virtualbox 中收到奇怪的错误消息。这是因为里面有一些关于您的虚拟机的信息C:\Users\YOUR_NAME\.VirtualBox\VirtualBox.xml
。
如果您不介意丢失 VirtualBox 中的某些全局配置,只需删除此文件即可。如果不存在,Virtualbox 将创建另一个。
如果您只想删除特定的 VM,则必须Virtualbox.xml
在某些 xml 编辑器中进行编辑(记事本就可以。notepad++ 更好,因为它具有语法突出显示功能)。
您将发现以下字段:
<MachineRegistry>
<MachineEntry uuid="UUID" src="Machines\MACHINE_NAME\MACHINE_NAME.xml"/>
</MachineRegistry>
<MediaRegistry>
<HardDisks>
<HardDisk uuid="UUID" location="HardDisks\DISC_NAME.vdi" format="VDI" type="Normal"/>
</HardDisks>
<DVDImages>
<Image uuid="UUID" location="C:\IMAGES\IMAGE.iso"/>
</DVDImages>
<FloppyImages/>
</MediaRegistry>
从所需虚拟机中删除 MachineEntry。如果您只有一台虚拟机并且想要删除所有内容,只需将标签留空即可。例如:
<MachineRegistry/>
<MediaRegistry>
<HardDisks/>
<DVDImages/>
<FloppyImages/>
</MediaRegistry>
...您已经完成了。我刚刚测试了这里的所有内容,它运行完美。如果您想避免问题,请从 VirtualBox 和特定虚拟机备份您的 xml 配置文件。
(我没有提到快照,但我相信这是相同的原理。)
答案2
上述说明并没有解决我的问题。我想删除特定机器,而不是全部。我不再有此文件中特定机器的 MachineEntry:C:\Users\YOUR_NAME\.VirtualBox\VirtualBox.xml
但是,机器仍然出现在虚拟媒体管理器中,我无法从这里将其删除。
重新启动 VirtualBox 也不起作用。
有效的方法:
重新启动VBoxSVC.exe
进程,然后重新启动 VirtuaBbox。
答案3
首先,删除该虚拟机的所有快照。然后打开虚拟机的设置,转到存储选项卡,右键单击 IDE 控制器下的 vdi 文件,然后单击删除附件。现在您应该能够从虚拟媒体管理器中删除 VDI。