首先明确:hyper-v管理器里面“设置-硬盘驱动器-编辑-选择操作-压缩”并没有明显的效果。
然后区分几个关键词:
hyper-v里面的“压缩(compact)”:虚机里磁盘的可用空间不变,虚拟磁盘文件大小变小(因为是回收虚机因删除文件释放出来的磁盘空间,所以不可能压缩到比虚机里磁盘总已用空间还小)
hyper-v里面的“收缩”:虚机里磁盘的可用空间变小。(不可能影响已用空间)
磁盘管理工具(diskmgmt.msc)里面的“压缩卷”:使磁盘的可用空间变小。(不可能影响已用空间)
最后看方案:
1.有人给出的方案:碎片整理无效,还有反作用,应该先收缩,再压缩,再扩展。
如:先在磁盘管理工具里面“操作-附加VHD”,然后在有可用空间的分区上右键“压缩卷”(只支持NTFS,而且过程漫长,无进度条),然后分离VHD,在hyper-v管理器里面压缩,就有效果。
2.也有方案:建一个新的虚拟磁盘,使用diskgen或者Ghost11把原来磁盘的内容(按文件或者文件系统或者partition2partition拷过来),然后把新的虚拟磁盘当原来的磁盘用。
这两个感觉都不是很好,速度慢或根本没有进度条不知道过程如何了;或者不支持linux;或者新磁盘的有些硬件特征会改变。
看下面的:
3.对NTFS文件,用Windows Server PowerShell里面的Optimize-VHD小命令(cmdlet&#