![du 显示磁盘使用量为 38GB,但其中只有很少的小文件](https://linux22.com/image/1089477/du%20%E6%98%BE%E7%A4%BA%E7%A3%81%E7%9B%98%E4%BD%BF%E7%94%A8%E9%87%8F%E4%B8%BA%2038GB%EF%BC%8C%E4%BD%86%E5%85%B6%E4%B8%AD%E5%8F%AA%E6%9C%89%E5%BE%88%E5%B0%91%E7%9A%84%E5%B0%8F%E6%96%87%E4%BB%B6%20.png)
发现奇怪的事情
root@noname:/# df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 12K 3.9G 1% /dev
tmpfs 799M 1020K 798M 1% /run
**/dev/sda1 42G 38G 1.5G 97% /**
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 3.9G 72K 3.9G 1% /run/shm
none 100M 12K 100M 1% /run/user
/dev/sda6 296G 100G 181G 36% /var/lib/noname/jobs
/ 上使用了 38GB,但找不到这个地方的使用位置:
root@noname:/# du -sm *
10 bin
271 boot
1 cdrom
1 dev
19 etc
797 home
0 initrd.img
0 initrd.img.old
1826 lib
1 lib64
1 lic
1 lost+found
1 media
1 mnt
785 opt
0 proc
17 root
2 run
13 sbin
1 srv
0 sys
2 tmp
4843 usr
104366 var
0 vmlinuz
0 vmlinuz.old
检查是否有正在使用的打开和删除的文件,但只有一些小文件:
root@noname:/# lsof | grep delete
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/112/gvfs
Output information may be incomplete.
init 1 root 12w REG 8,1 154 1441810 /var/log/upstart/systemd-logind.log.1 (deleted)
init 1 root 14w REG 8,1 168 1443848 /var/log/upstart/mountall.log.1 (deleted)
init 1 root 22w REG 8,1 521 1442332 /var/log/upstart/modemmanager.log.1 (deleted)
init 1 root 25w REG 8,1 283 1443843 /var/log/upstart/network-manager.log.1 (deleted)
答案1
这里还有其他建议值得考虑。我想到另外两种可能性:
- 您没有说明您使用了哪种文件系统。有些文件系统(尤其是 Btrfs)可能会在隐藏的数据结构中占用大量空间。您可以使用特殊的文件系统专用实用程序恢复此空间,但如果您需要详细帮助,则需要说明您使用的是哪种文件系统。
- 空间可能被隐藏的点文件(或点目录)占用——即名称以 开头的文件或目录
.
。许多工具(包括 )都隐藏了此类文件和目录du
。因此,您的du
命令会忽略此类文件和目录。通常,此类文件或目录不会占用 38 GB 的空间,但意外重命名某个大文件可能会造成这种情况。我不确定,但某些文件管理器也可能将此类目录用作“垃圾”位置,这可以解释所用的空间。
答案2
也许您设置了备份或崩溃计划,他们正在将此空间用作备份。您应该使用磁盘使用情况分析器扫描所述目录并找出所有空间的去向。但除非您使用 sudo 启动它,否则它很可能也不会显示此空间。
答案3
运行gksudo baobab
以启动图形磁盘使用情况分析器,它应该可以帮助您找到垃圾。
答案4
尝试使用:
du -csh /*
这应该会显示 (root) 中每个目录的磁盘空间摘要/
。您可以从那里进入最大的文件夹(通常tmp
如此,var
但可能会有所不同)。
例如,如果在文件夹中,/var
您可以像这样使用:
du -csh ./*
这将显示您所在目录下的所有文件夹。