du 显示磁盘使用量为 38GB,但其中只有很少的小文件

du 显示磁盘使用量为 38GB,但其中只有很少的小文件

发现奇怪的事情

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 ./*

这将显示您所在目录下的所有文件夹。

相关内容