缩小virtualbox中ova文件的大小


4

我有一个来自〜1GB ova文件的Ubuntu 64位VM,我在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

导出此机器时,ova的大小约为3GB。

有什么想法可以缩小吗?

Answers:


4

当OS首次写入特定扇区时,将分配.vmdk中的空间。一旦写入,它将被永久分配。

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

在VM中用dd直接复制将不起作用,因为它将每个扇区写入目标.vmdk文件,因此它将扩展到其完整大小而不是缩小。


8

请参阅文章如何缩小动态扩展的来宾virtualbox映像

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

  1. 使用Ubuntu的Zerofree对可用空间进行清零
  2. 使用以下方法收缩VM
    VBoxManage modifyhd my.vdi –compact

我按照文章中的说明进行了尝试,并从3.5GB降至3.0GB。我无法复制上一个命令,因为我从导出文件中获取了* .ova文件: VBoxManage modifyhd my.ova -compact抱怨Could not get the storage format of the medium
719016 2012年

此方法没有导出功能,也没有.ova文件:您只需在VM内运行zerofree ,将其关闭,然后压缩即可。
harrymc

得到它了。我只有*.vmdk文件,因此我先转换为vdi,VBoxManage clonehd --format VDI my-disk1.vmdk my-disk1.vdi然后应用了紧凑命令,但vdi的大小完全没有改变。
719016

必须在文件末尾保留一些文件。删除尽可能多的文件,然后按照本教程进行操作。此外,本文以及该主题也可能会有所帮助。
harrymc

错别字:“文件结尾” =>“磁盘结尾”。
harrymc
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.