我错误地从 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
错误如下图所示:
VERR_PATH_NOT_FOUND
表示提供的文件路径无效。使用 VBoxManage 进行任何操作后,VirtualBox 都会将文件路径保存在全局配置文件中。该文件是 XML 格式的文件。VirtualBox 在以下目录中维护全局配置数据:
- Linux 和 Oracle Solaris:
$HOME/.config/VirtualBox/VirtualBox.xml
- Windows:
%UserProfile%\.VirtualBox\VirtualBox.xml
或C:\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。媒体管理器将不会显示这些磁盘的条目。