是否可以在客户机运行时压缩 VirtualBox .vdi 映像?

是否可以在客户机运行时压缩 VirtualBox .vdi 映像?

我一直在 Google、本网站和 VirtualBox 论坛上搜索这个问题,但找不到任何相关内容。由于如今分区可以在系统运行时调整大小、加密、克隆……(即使它是存储正在运行的操作系统的分区),是否可以vboxmanage --compact在正在运行的客户机的磁盘上执行这些操作?

如果不行,可以对已保存的虚拟机的 .vdi 进行此操作吗?(即在使用“保存机器状态”关闭它之后)

(这是 Debian 11 主机内的 Windows 10 客户机)

答案1

自从Virtualbox 关于该主题的手册关于一些动作的约束相当稀缺,我尝试对其进行一些封闭:

我的测试设置包括 Virtualbox 7.0.8、主机和客户机上的 Debian 11,以及动态分配的 vdi-diskimages。我可以成功运行

vboxmanage modifymedium path/to/harddrive.vdi --compact

以及快照

vboxmanage modifymedium path/to/Snapshots/{uuid}.vdi --compact

Save the machine state 当使用或关闭机器时Shutdown via ACPI-Event

不能VM 运行时,不压缩基础映像也不压缩快照。出现以下错误消息:

VBoxManage: error: Failed to lock media when compacting 'path/to/harddrive.vdi'
VBoxManage: error: Details: code VBOX_E_INVALID_OBJECT_STATE (0x80bb0007), component MediumWrap, interface IMedium, callee nsISupports
VBoxManage: error: Context: "Compact(pProgress.asOutParam())" at line 912 of file VBoxManageDisk.cpp
VBoxManage: error: Failed to compact medium!

相关内容