当 VDI 文件所在的硬盘被删除时,如何删除 VirtualBox 中的虚拟机?

当 VDI 文件所在的硬盘被删除时,如何删除 VirtualBox 中的虚拟机?

我正在使用托管在 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。

在此处输入图片描述

相关内容