压缩VHD/VHDX文件占用的空间

不知道什么是VHD/VHDX的,请移步:VHD/VHDX科普文

固定VHD/VHDX在创建之后就直接在磁盘上占用了该文件设定的大小,性能较好;动态vhd/vhdx文件一开始占用磁盘空间小,但是在长时间写入后会不停的增大。即使你删除了其中的文件,虚拟磁盘文件所占用的磁盘物理空间也不会因此自动释放。本文的目的就是把这些空间释放出来。

注意:VHD/VHDX的磁盘分区格式如果是exFat,那么下面的方法是没有太大效果的!如果是NTFS则基本可以完全释放!(之前建立了一个簇大小是512的exFat分区发现磁盘空间回收不能,随后转用NTFS就可以了)

测试环境:windows 10 1609 x64,以下是详细步骤(参考自:https://linhost.info/2011/01/windows-how-to-compact-a-dynamic-vhd/

1.打开cmd,需要使用管理员权限,调用diskpart命令

diskpart

2.选择要处理的vhd/vhdx文件

select vdisk file="<vhd/vhdx文件的路径>"

3.以只读方式附加这个磁盘

attach vdisk readonly

4.使用压缩命令

compact vdisk

5.压缩完成之后进行分离

detach vdisk

经过上述操作之后,文件理论上就会变小了!