V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
HeiXiaoBai
V2EX  ›  Linux

奇怪的问题, df 命令显示 Used 为负数

  •  
  •   HeiXiaoBai · 2023-12-06 15:17:22 +08:00 · 1380 次点击
    这是一个创建于 378 天前的主题,其中的信息可能已经有所发展或是发生改变。

    服务器是物理机,根目录用了 LVM+xfs
    第一次遇到这种情况,df 查看根目录的已用空间为负数,已用空间大于总空间
    root 用户能正常登陆,且文件读写正常无报错
    普通用户登录报错failed to execute /bin/bash: Resource temporarily unavailable

    查了一下,ext4 有保留应急空间的机制,非保留空间耗尽后只有 root 用户能使用保留空间,但 xfs 没有这个应急空间的机制,也没有做过配额限制
    du 命令看根目录下的文件总大小也才 68G ,lsof 看 deleted 的文件也没有什么比较明显的未释放文件
    现在也没啥排查的思路了,计划明天关机尝试xfs_repair看看能不能修复,实在不行就备份文件重新格式化

    但是对这个问题还是挺好奇的
    以下是命令输出

    # df -h /
    Filesystem               Size  Used Avail Use% Mounted
    /dev/mapper/centos-root  206G  -20G 226G  -    /
    
    # xfs_quota -x -c "df -h" /
    Filesystem               Size   Used  Avail  Use%      Mounted
    /dev/mapper/centos-root  205.8G 16.0E 225.3G 4054232%  /
    
    4 条回复    2023-12-09 12:38:10 +08:00
    ryc111
        1
    ryc111  
       2023-12-06 15:22:35 +08:00 via iPhone
    可能是文件系统坏了,
    也可能是磁盘配额的问题,可能是你设了硬盘配额
    julyclyde
        2
    julyclyde  
       2023-12-06 15:29:34 +08:00
    建议先备份
    McZoden
        3
    McZoden  
       2023-12-06 15:59:17 +08:00
    U 盘刻录个任何发行版的 livecd ,u 盘启动后,单独 mount 分区,再查问题,一般都能救回来的
    gilgameshhh
        4
    gilgameshhh  
       2023-12-09 12:38:10 +08:00
    df 使用文件系统提供的 statfs 接口查询可用空间,对于很多文件系统这只是个估计值,因为文件占用的空间比文件本身要大,这不只是块对齐导致的,文件系统本身的设计也会导致这个现象(比如 truncate 文件时没有缩减相应 extent )。因此,出现这种奇怪的数字应该直接去看源码。其他方法只能是捕风捉影
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1008 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:15 · PVG 06:15 · LAX 14:15 · JFK 17:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.