也许我对 df 的作用的理解不正确?
我想知道这里的问题是什么
1. 检查使用情况
$ sudo df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 443G 436G 4,6G 99% /
2. 识别大文件
$ sudo find /var/lib/libvirt -name WS19.qcow2 -exec ls -lh {} \;
-rw------- 1 root kvm 41G 7. Okt 2020 /var/lib/libvirt/images/WS19.qcow2
3.删除该文件
$ sudo find /var/lib/libvirt -name WS19.qcow2 -exec rm {} \;
4.再次检查使用情况
$ sudo df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 443G 436G 4,6G 99% /
因此,删除 41G 不会改变“df -h”输出。我做错了什么?rm
我认为应该先删除它,而不是将其移至废纸篓(甚至检查了废纸篓。41G 文件不在那里)。
似乎btrfs filesystem df
都没有捕捉到删除
sudo btrfs fi df /
Data, single: total=432.37GiB, used=427.79GiB
答案1
删除的文件可能被某个进程保持打开状态。您可以使用lsof | grep WS19.qcow2
来发现受影响的进程;终止它会释放占用的空间。
请注意,最有可能的候选者是正在运行的虚拟机。将其关闭后,所有数据将永远消失(因为您已经删除了它的支持文件)。
答案2
答案3
或者您的数据删除未同步。只需运行该命令sync
就可以了。
答案4
/var/lib/libvirt/images/WS19.qcow2
该文件可能是运行在 Linux 系统上的 VM(虚拟机)的磁盘文件。请注意,如果删除此文件,您将永久丢失 VM。
但如果您确实要删除此文件,请先停止虚拟机,删除该文件,然后您将能够在输出中看到回收的空间df
。
如果仍然没有,您可以使用以下命令检查,它将打印已删除文件的大小。
lsof |grep -B1 -i "WS19.qcow2" | awk '{s+=$9} END {print s }'