缩小虚拟机中的 ova 文件的大小

缩小虚拟机中的 ova 文件的大小

我有一个 Ubuntu 64 位 VM,它是从一个 ~1GB 的 ova 文件派生而来的,我在 VMware vSphere 下使用它安装了更多软件,并使用该系统处理一些占用 2-3GB 空间的数据集,但现在我删除了这些大文件,我原本以为从中生成的新 ova 文件也会占用大约 ~1.1GB 的空间,但实际上占用了大约 3GB。如果我查看 virtualbox 中 .vmdk 文件的详细信息,我会看到以下内容:

Hart Disk: SATA Port 0
Type (Format): Normal (VMDK)
Virtual Size: 8.00 GB
Actual Size:  7.90 GB
Details: Dynamically allocated storage
Location: /somewhere/myVM-disk1.vmdk
Attached To: myVM.virtualbox

当我导出这台机器时的卵子大小约为3GB。

有什么想法我可以把它缩小吗?

答案1

当操作系统首次写入特定扇区时,会在 .vmdk 中分配一个空间。一旦写入,它将被永久分配。

因此,您需要向虚拟机添加第二个动态大小的虚拟硬盘,然后从 LiveCD 启动 VM,使用 fdisk 创建分区并复制所有文件 (cp -R)。然后关闭 VM,交换虚拟硬盘,再次启动并验证一切正常,然后从 VM 中分离原始虚拟硬盘并将其作为主机系统磁盘上的文件删除。

在虚拟机中直接使用 dd 复制是行不通的,因为它会将每个扇区写入目标 .vmdk 文件,所以它会扩展到其完整大小而不是缩小。

答案2

查看文章如何缩小动态扩展客户机 VirtualBox 映像

它描述了如何通过以下方式缩小磁盘:

  1. 将可用空间清零,使用零自由对于 Ubuntu
  2. 使用以下方法缩小虚拟机
    VBoxManage modifyhd my.vdi –compact

相关内容