在一台 Hetzner 服务器上,我无法弄清楚为什么我的磁盘驱动器占用的空间比其实际运行的空间还多。df -h 结果:
Filesystem Size Used Avail Use% Mounted on
udev 63G 0 63G 0% /dev
tmpfs 13G 1.3M 13G 1% /run
/dev/md2 1.8T 1.4T 324G 81% /
tmpfs 63G 0 63G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/md1 989M 149M 790M 16% /boot
tmpfs 13G 0 13G 0% /run/user/0
/dev/loop1 384K 384K 0 100% /snap/lz4/3
/dev/loop5 384K 384K 0 100% /snap/lz4/4
/dev/loop0 64M 64M 0 100% /snap/core20/2015
/dev/loop2 106M 106M 0 100% /snap/core/16091
/dev/loop4 106M 106M 0 100% /snap/core/16202
overlay 1.8T 1.4T 324G 81% /var/lib/docker/overlay2/85110815787f3675a6dbe33fbca9111acbb7974231f7127e9bca3714ddbd5a5e/merged
/dev/loop6 64M 64M 0 100% /snap/core20/2105
如您所见,它显示使用了 1.4T,但我用于检查目录大小的所有其他工具都显示不同的结果:
都啊 / |排序 -rh |头-n 20
712G /
369G /root
331G /home
325G /home/main
全国民主联盟:
368.3 GiB [##########] /root
330.5 GiB [######## ] /home
7.0 GiB [ ] /var
3.4 GiB [ ] /usr
1.0 GiB [ ] /snap
891.7 MiB [ ] /lib
148.4 MiB [ ] /boot
42.6 MiB [ ] /tmp
14.1 MiB [ ] /bin
13.4 MiB [ ] /sbin
12.3 MiB [ ] /etc
5.7 MiB [ ] /lib32
1.3 MiB [ ] /run
20.0 KiB [ ] installimage.debug
16.0 KiB [ ] /opt
e 16.0 KiB [ ] /lost+found
8.0 KiB [ ] /media
4.0 KiB [ ] /lib64
e 4.0 KiB [ ] /srv
e 4.0 KiB [ ] /mnt
e 4.0 KiB [ ] /celestia
4.0 KiB [ ] installimage.conf
. 0.0 B [ ] /proc
0.0 B [ ] /sys
0.0 B [ ] /dev
@ 0.0 B [ ] initrd.img.old
@ 0.0 B [ ] initrd.img
@ 0.0 B [ ] vmlinuz.old
@ 0.0 B [ ] vmlinuz
答案1
除了可见文件之外,还有很多其他原因会占用空间:
- 程序打开了隐藏的临时文件。在 Linux 上,程序经常创建文件然后立即删除它们,同时保持它们打开以确保在卸载时删除它们。https://serverfault.com/questions/834912/no-space-on-ext4-partition-left-with-files-not-summing-up-to-used-space-and-with
/proc/*/fd/
。它们可以在或中找到sudo lsof | grep deleted
。终止进程以释放空间或重新启动 - 被 overmounts 隐藏的文件:https://superuser.com/questions/1409372/difference-in-free-disk-space-ncdu-and-df。 尝试
mount --bind / /mnt && du -ah /mnt
- 为 root 保留的空间:https://superuser.com/questions/1346350/is-there-a-way-to-make-ext-filesystems-use-less-space-for-themselves-in-linux。
sudo tune2fs -m 0 /dev/md2
- 您正在使用的工具版本可能无法识别来自
setcap
、SELinux、fallocate
等额外的文件元数据ftruncate
- 少量额外空间用于超级块、备份超级块、集群、各种空间位图和空闲 inode。文件系统创建后无法更改,但下次专家可以选择更改分配的 inode 数量
- 文件系统损坏。
fsck
从 LiveCD运行