Hyper-V虚拟机虚拟磁盘文件越用越大怎么办?
关键词: Hyper-V、Optimalize、VHD
授权协议: CC BY-NC-SA 3.0,转载请标注来源
起因
众所周知,QQ和微信这种国民级小可爱总是偷偷扫描电脑上的数据,且喜欢在各种目录下倾泻废物。
而且因为工作的原因你还不能选择不用。
于是本人使用了虚拟机来运行这些小可爱。
但是在日常使用中虚拟机的虚拟磁盘会动态扩充体积,即使在虚拟机内进行了文件删除,空间也不能得到自动释放,这很快就会变成一个令人头疼的问题。
思路
网上不少人给出的方案是在Hyper-V管理器中使用磁盘压缩,但这个方法并没有用处。
还有些人建议通过磁盘管理软件拷贝文件后手动整理,但本人麻烦且费事,而且不小心会把虚拟磁盘里的文件搞坏。
于是去微软的文档中查看有没有官方提供的解决方法,然后找到了微软做的一个命令工具 Optimize-VHD 。
微软的文档说明如下:
Optimize-VHD 优化了一个或多个虚拟硬盘文件的空间分配。
这个操作可以回收未使用的块,以及重新排列块,使其更有效地打包,从而减少虚拟硬盘文件的大小。
经过测试,该工具效果很好,所以将使用方法记录下来供不时之需。
方法
首先将你的的虚拟磁盘在宿主机的 磁盘管理实用程序 内用 只读 模式挂载(非必须);
打开 PowerShell 或 CMD 输入以下命令处理需要整理的虚拟磁盘:
注意⚠:请自行替换例子内的路径成为你的虚拟磁盘所在路径。
例子:以快速模式处理需要优化的卷
Optimize-VHD -Path C:\Demo\Demo.vhdx -Mode Quick
快速回收未使用的块,仅在虚拟磁盘以只读模式挂在时可用。
例子:在带有空格的路径中以重新裁剪(Retrim)处理需要优化的卷
Optimize-VHD -Path "D:\Have Space Path\Demo.vhdx" -Mode Retrim
向磁盘发送重新裁剪而不扫描零块或回收未使用的块,仅在虚拟磁盘以只读模式挂在时可用。
例子:在后台作业中以完整模式处理需要优化的卷
Optimize-VHD -Path E:\Background-Job\Demo.vhdx -Mode Full -AsJob
以完整模式进行扫描和处理(扫描零块并回收未使用的块),仅在虚拟磁盘以只读模式挂在时可用。
- 享受节省的空间吧!
参考
本文以CC BY-NC-SA 3.0协议发布,转载请标注来源。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 协议 ,转载请注明出处!