零填充会增加virtualbox动态磁盘映像的大小


10

我一直在为Oracle virtualbox使用固定大小的磁盘映像,但是我正在考虑切换到动态磁盘映像,因为听说动态映像的性能类似于固定大小的映像,但扩展时除外。

我要做的一个操作是在使用zip程序备份之前,将固定大小的磁盘映像零填充(以减小zip存档的大小)。我的问题是,当我对动态磁盘进行零填充时,磁盘大小会增加到其最大声明值吗?(对于我的特定情况,我sdelete -z在Windows分区上使用。)

另一个问题是,是否有一种方法可以在不增加磁盘大小的情况下对分区进行零填充?

谢谢。

-编辑-

为了澄清,我问的原因是我想使压缩的virtualbox映像的大小最小。零填充固定大小的图像可以完成此工作,因为零填充部分几乎对压缩图像没有任何贡献。但是,如果切换到动态磁盘,则零填充似乎无法达到使用动态大小的映像的目的。

我的问题的第二部分实际上是在询问是否有比零填充更好的选择,它可以删除未使用的扇区而不扩大磁盘大小。


1
是的,完全分配的动态分配磁盘将是其完全分配的大小。我不太确定这里有什么混乱之处,也无法理解执行您描述的原因的理由,但是不,您不能将一堆数据(尽管全为0)填充到文件中,并且不能期望其大小改变。
Frank Thomas

@FrankThomas请参阅我的更新以了解执行零填充的原因。
tinlyx

1
@tinlyx我刚刚回答了,看来我也回答了您的编辑,您实际上可以使用virtualbox工具压缩动态磁盘映像。因此,零填充后紧跟契约将为存档提供完美的图像。
Mokubai

Answers:


12

我刚刚对其进行了测试(sdelete -z在VM中使用),并且零填充磁盘将不会明显增加动态磁盘映像的大小。Virtualbox足够聪明,可以识别出将零写入一个已经空的块时,磁盘不需要再次写入该块。

但是即使这样做也还不错,因为零填充磁盘也可以使您能够使用主机中的Virtualbox Tools再次压缩它:如何压缩VirtualBox的VDI文件大小?

当我将虚拟机填满零时,映像大小从〜14.5GB增大到〜15.5GB,但没有完全分配所有磁盘空间,大约是48GB。

实际上,通过磁盘零填充(通过sdelete -z)将使您可以适当地释放已写入但已由VM操作系统释放的所有空间,然后可以VBoxManage.exe modifyhd c:\path\to\thedisk.vdi --compact在主机上运行命令以正确压缩动态磁盘映像。缩小到最小尺寸。


谢谢。确实,sdelete -z动态磁盘大小不会增加太多。
tinlyx
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.