如需更好的阅读模式,可点击这里前往我的博客
https://www.bilibili.com/video/BV17dRvBPERJ/

首先使用下面命令列出所有正在运行虚拟机,要先把你的虚拟机给运行起来方便寻找
sudo virsh list

sudo virsh edit 此处替换对应虚拟机名称
在 <driver .../> 行中添加 discard='unmap',修改后应该是这样:

然后 ctrl+x键入 y保存出现报错键入 i强行保存即可

然后开机即可
Linux
进入虚拟机的SSH输入
sudo fstrim -av
这条命令会扫描并回收所有已挂载且支持TRIM的文件系统上的空闲空间

Windows
确保已安装virtio驱动https://help.fnnas.com/articles/v1/virtual-machine/install.md
搜索找到 碎片整理和优化驱动器工具

然后确保媒体类型识别正确,点击优化即可

常见问题
执行完毕后仍然没有回收空间
检查虚拟机是否存在快照,如果存在快照必须删除快照后重新到系统中执行对应的操作

虚拟机系统会定时释放空间吗
Linux和Windows都会自动运行释放空间,Linux可以使用下面命令
systemctl status fstrim.timer
确认服务是否正在运行,正在运行的话就不用管,内核会定时释放空间,Windows默认是每天自动运行。