返回星港

飞牛qcow2磁盘空间不回收问题解决

OBSERVER又菜又爱玩的小朱 LAUNCH RESYNC JUMPS451 次跃迁
飞牛qcow2磁盘空间不回收问题解决 · 封面
https://www.bilibili.com/video/BV1DT5g6EERp/

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

sudo virsh list
8E8865C2-5568-42A1-A9D0-A8EF0E96B5FA.png
sudo virsh edit 此处替换对应虚拟机名称

在 <driver .../> 行中添加 discard='unmap',修改后应该是这样:

1337E7DB-6420-4E36-8DE4-61E17E35D735.png


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

D8C7035A-2D2D-4E5D-8827-125E426D359D.png


然后开机即可

Linux

进入虚拟机的SSH输入

sudo fstrim -av

这条命令会扫描并回收所有已挂载且支持TRIM的文件系统上的空闲空间

5BD1EEA4-9FAB-43B8-AFED-66C3AA70BA05.png

Windows

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

BDDF01EE-46B0-42C9-9D0B-993A3C46333B.png


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

E4D4118B-933F-42EF-ACC1-3A04679C7E1A.png

常见问题

执行完毕后仍然没有回收空间

检查虚拟机是否存在快照,如果存在快照必须删除快照后重新到系统中执行对应的操作

8AB1535E-2DD4-4D45-A687-8160035087D7.png

虚拟机系统会定时释放空间吗

Linux和Windows都会自动运行释放空间,Linux可以使用下面命令

systemctl status fstrim.timer

确认服务是否正在运行,正在运行的话就不用管,内核会定时释放空间,Windows默认是每天自动运行。