方法一
进入vSphere或vCenter打开ESXi SSH模式
命令运行完成后,用SSH连接到ESXi主机上进到需要回收空间的.vmdk目录下,运行vmkfstools工具,参数用-K,,等运行完成后就能够成功回收空间了。该方法仅限于Windows系统。
[root@GZVM01:~] cd /vmfs/volumes/59101828-7947f493-f579-a4badb461ee3/TEST-WIN10-4.98
[root@GZVM01:/vmfs/volumes/59101828-7947f493-f579-a4badb461ee3/TEST-WIN10-4.98] vmkfstools -K TEST-WIN10-4.98_0.vmdk
vmfsDisk: 1, rdmDisk: 0, blockSize: 1048576
Hole Punching: 100% done.
[root@GZVM01:/vmfs/volumes/59101828-7947f493-f579-a4badb461ee3/TEST-WIN10-4.98] du -h *flat*
20.6G TEST-WIN10-4.98_0-flat.vmdk
方法二
另外一个简单方便的方法是,在VM上下载一个SDelete.exe的程序,然后用Windows CMD运行,参数用-z,这个参数是将那些被写入过数据的区块标记为零,格式如:sdelete.exe -z c:,运行过程比较慢,期间在操作系统中会看见你的磁盘会被占满,等运行完成后又会回到正常的容量。