手动清理故意删除的 Virtualbox 驱动器

手动清理故意删除的 Virtualbox 驱动器

我错误地从 VirtualBox VM 中删除了两个虚拟磁盘。我从客户机配置中删除了它们,但忘记从媒体列表中删除它们,并从文件系统中删除了文件和目录,因此我在媒体列表中看到磁盘出错。它们有关联的快照,因此我收到有关它们正在使用中的错误。如果我尝试通过 GUI 删除关联的快照,或者vboxmanage我收到此错误消息:

VBoxManage.exe: error: VD: error VERR_PATH_NOT_FOUND opening image file [location]

当然,快照也消失了(这些是我安装的旧 vmdk 文件,因此快照可能不是真的)。​​如何从我的 VirtualBox 配置中手动删除这些幽灵条目?我怀疑有一个配置文件或注册表条目,但我不知道在哪里查找。

答案1

希望这对某人有帮助。

cat ~/.config/VirtualBox/VirtualBox.xml | grep your_roguedisk.vdi

获取 UUID 的输出。

$ vboxmanage closemedium disk "{d89ef84a-d754-4da2-b2a1-cc37063d0c6d}" --delete

答案2

错误如下图所示:

VirtualBox 文件未找到错误

VERR_PATH_NOT_FOUND表示提供的文件路径无效。使用 VBoxManage 进行任何操作后,VirtualBox 都会将文件路径保存在全局配置文件中。该文件是 XML 格式的文件。VirtualBox 在以下目录中维护全局配置数据:

  • Linux 和 Oracle Solaris:$HOME/.config/VirtualBox/VirtualBox.xml
  • Windows:%UserProfile%\.VirtualBox\VirtualBox.xmlC:\Users\UserName\.VirtualBox\VirtualBox.xml
  • Mac OS X:$HOME/Library/VirtualBox/VirtualBox.xml

该文件包含每个虚拟机的配置。因此把它备份编辑之前。VirtualBox.xml在任何文本编辑器中打开该文件。找到要删除的文件路径。通常路径位于<HardDisk/>标签中。例如,格式如下:

<HardDisks>
    <HardDisk uuid="{3761d018-e224-45d4-aa61-764d2c408712}" location="F:/test.VHD" format="VHD" type="Normal"/>
    <HardDisk uuid="{9f4f1f1c-f4c9-4773-a0b3-f0c52f699142}" location="F:/test.VMDK" format="vmdk" type="Normal"/>
</HardDisks>

删除整行标签,否则 VBox 会显示错误。这就是为什么在进行任何更改之前备份该文件的原因。有关详细信息,请参阅VirtualBox 文档:10.1.3. 全局配置数据

答案3

受到第一个无效响应的启发,我找到了解决方案。解决方案是停止 VirtualBox,然后进入引用相关磁盘映像的单个 VM 的目录(或每个 VM),编辑 VM 的 .vbox 文件,删除 HardDisk 条目(包括快照),然后重新启动 VirtualBox。媒体管理器将不会显示这些磁盘的条目。

相关内容