压缩/缩小可扩展/dynamicVHD以完全恢复空间

如果我创build了最大尺寸为50Gb的可扩展虚拟硬盘(VHD),请填入48Gb的文件,然后将其减less到25Gb,那么减lessVHD尺寸的最有效和最可靠的方法是什么?所以它只有25Gb左右。

我想这样做,而不必将VHD的内容复制到一个新的,或有任何理由有两倍的可用空间量。

我知道,diskpart的VHD COMPACT不能恢复所有的空间。

不知道您使用的是Windows 7虚拟PC还是Windows Server 2008 R2 Hyper-V或Windows Server 2012 Hyper-V,但是我会解决每种情况都是安全的。

  1. 如果您使用的是Windows 7,则需要安装precompactor.iso(在Program Files(x86)\ Windows Virtual PC \ Integration Components中find),然后从挂载的ISO中运行precompact.exe。 完成之后,您可以closures虚拟机并编辑VHD以缩小尺寸。 这应该会减小接近25 GB的实际使用空间的大小。

  2. 如果您运行的是Windows Server 2008或2008 R2 Hyper-V,那么我build议您从Windows 7计算机上获取precompactor.iso文件,并遵循第1步中为Windows 7提供的相同指导。

  3. 如果您运行的是Windows Server 2012 Hyper-V,则将VHD转换为VHDX,而Windows Server 2012 Hyper-V将根据实际使用情况自动缩小文件的大小。

如果您正在寻求绝对的空间效率,请构build一个新的VHD,并将旧文件复制到新VHD中,最好在目标VHD中的文件系统中启用文件压缩。 我知道你排除了这个潜在的答案。 但是我提到它是因为它是最节省空间的select。

在压缩之前,您可以通过在VHD中对文件系统进行碎片整理来估计这个效率级别。 这两个操作合在一起最终将花费比构build新的VHD更多的时间,因为将会有更多的I / O操作产生,并且可能会有更多的数据副本。