df 和 du 之间的巨大差异

Jea*_*son 5 filesystem disk disk-usage

我的/分区包含所有内容(包括/home),突然使用了 100% 的磁盘空间。我删除了一些文件,现在df显示

$ df -h /dev/sda1 
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       214G  149G   54G  74% /
Run Code Online (Sandbox Code Playgroud)

然而du显示:

$ sudo du -shxc /*
9.6M    /bin
66M /boot
4.0K    /cdrom
4.0K    /dev
16M /etc
26G /home
0   /initrd.img
0   /initrd.img.old
504M    /lib
3.5M    /lib32
4.0K    /lib64
0   /libnss3.so
16K /lost+found
92K /media
4.0K    /mnt
3.3G    /opt
du: cannot access ‘/proc/4708/task/4708/fd/4’: No such file or directory
du: cannot access ‘/proc/4708/task/4708/fdinfo/4’: No such file or directory
du: cannot access ‘/proc/4708/fd/4’: No such file or directory
du: cannot access ‘/proc/4708/fdinfo/4’: No such file or directory
0   /proc
346M    /root
1.9M    /run
13M /sbin
136K    /srv
0   /sys
36K /tmp
6.3G    /usr
1.1G    /var
0   /vmlinuz
0   /vmlinuz.old
37G total
Run Code Online (Sandbox Code Playgroud)

我用过sudo,只能/proc访问,知道机器上做了什么,du好像是对的。然而,为超过 54G 的磁盘空间分配df剩余的空间确实失败了:

$ fallocate -l 55G test.img
fallocate: test.img: fallocate failed: No space left on device
Run Code Online (Sandbox Code Playgroud)

我知道baobab and df/dudf之间的差异显示所有空间占用,但 du 不加起来似乎显示相同的问题,但没有关于如何解决它的答案。我也知道为什么 df 和 du 显示不同的输出?,但这里的差异非常大,我重新启动了机器,我/dev/sda1在从 DVD 启动时检查了它,所以它真的不应该再存在了。

有谁知道发生了什么。我真的很想找回我的磁盘空间!;)

系统信息:

$ uname -a
Linux hjort 3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

$ lsb_release -a
LSB Version:    core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:core-3.0-noarch:core-3.1-amd64:core-3.1-noarch:core-3.2-amd64:core-3.2-noarch:core-4.0-amd64:core-4.0-noarch:core-4.1-amd64:core-4.1-noarch:security-4.0-amd64:security-4.0-noarch:security-4.1-amd64:security-4.1-noarch
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.1 LTS
Release:    14.04
Codename:   trusty
Run Code Online (Sandbox Code Playgroud)

Jea*_*son 3

我的问题与这篇文章中的问题相同https://serverfault.com/questions/57098/du-vs-df-difference

抱歉,添麻烦了。我(错误地)进行了rsnapshot备份/mnt/backup,然后将备份驱动器安装在它们之上。