df 显示使用的负值?

df 显示使用的负值?

我有一台 CentOS 5.2 服务器并且运行时df -h得到以下信息:

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      672G -551M  638G   0% /
/dev/hda1              99M   12M   82M  13% /boot
tmpfs                 2.0G     0  2.0G   0% /dev/shm

上次显示正确值时,该空间的使用率甚至还不到 10%。我不知道发生了什么。

编辑#1

好的,所以我必须重新启动服务器,因为 SSHD 挂断了,我猜这与此有关。

重新启动后,一些新信息df -h显示使用了 12Gb(2%),但如果我运行,du -hcs /它显示总共 46Gb,这里有很大的差别。

编辑#2

正常运行约 15 分钟后df -h再次显示负值:

Filesystem            Size  Used Avail Use% Mounted on  
/dev/mapper/VolGroup00-LogVol00
                      672G  -24G  660G   -  /

编辑#3

更多信息,运行了fsck,这是输出:

Checking all file systems.
  [/sbin/fsck.ext3 (1) -- /] fsck.ext3 -f -y /dev/VolGroup00/LogVol00 
Pass 1: Checking inodes, blocks, and sizes 
Pass 2: Checking directory structure 
Pass 3: Checking directory connectivity 
Pass 4: Checking reference counts 
Pass 5: Checking group summary information
 /dev/VolGroup00/LogVol00: 204158/181633024 files (1.3% non-contiguous), 9224806/181633024 blocks 
[/sbin/fsck.ext3 (1) -- /boot] fsck.ext3 -f -y /dev/hda1 
Pass 1: Checking inodes, blocks, and sizes 
Pass 2: Checking directory structure 
Pass 3: Checking directory connectivity 
Pass 4: Checking reference counts 
Pass 5: Checking group summary information 
/boot: 34/26104 files (5.9% non-contiguous), 15339/104388 blocks

答案1

我认为这是文件系统损坏。您应该卸载分区并运行 fsck。
还请检查日志和控制台是否存在任何文件系统错误。

答案2

我认为这可能意味着您已经超出了仅保留为根的空间(我认为 ext3 上的默认值为 5%):

$ sudo tune2fs -l /dev/sda1 | grep -i 'Reserved block count'
Reserved block count:     1877194

保留块数是磁盘快满后只有 root 用户可以使用的一定数量的块(这可以防止普通用户填满 fs 并导致系统崩溃)。来自man tune2fs

   -m reserved-blocks-percentage 

设置仅可由特权进程分配的文件系统百分比。保留一定数量的文件系统块供特权进程使用是为了避免文件系统碎片化,并允许系统守护进程(如 syslogd(8))在非特权进程被阻止写入文件系统后继续正常运行。通常,保留块的默认百分比为 5%。

因此,我认为某些东西正在以 root 用户身份快速占用空间。您可以使用du -hcs /并从那里向下钻取以找到占用空间的文件的位置。如果您认为可能是某些东西创建了大文件,您也可以使用该find命令。

相关内容