Linux 磁盘配额并不是把 quota 包安装好就会自动生效,真正要让用户配额正常工作,必须严格按顺序完成三件事:先修改挂载选项,再初始化配额数据库,最后启用配额功能。这三个步骤缺一不可;否则执行 quota -u username 时,结果通常只会一直显示“none”。

用户磁盘配额不是安装完 quota 软件包就能直接启用的,必须依次完成修改挂载参数、初始化数据库、开启配额这三步,顺序不能乱,任何一步遗漏都会导致 quota -u username 始终显示 “none”。
确认文件系统类型和 quota 工具是否已经准备完成
在 Linux 中设置用户磁盘配额前,先确认目标分区使用的是 ext4 还是 xfs——这两种文件系统的配额实现方式完全不同,如果配置方法混用,通常会直接失败且没有明显报错:
- 运行
df -T /home,检查Type列输出到底是ext4还是xfs - 执行
quota -V,如果提示 command not found,说明 quota 工具尚未安装:
Ubuntu/Debian:运行sudo apt install quota;CentOS/RHEL:运行sudo yum install quota - 如果目标是 xfs 分区,还需要额外安装
xfsprogs:sudo apt install xfsprogs或sudo yum install xfsprogs - 对于 ext4 文件系统,还应确认当前内核支持配额功能:
grep CONFIG_QUOTA /boot/config-$(uname -r),输出结果中应包含y或m
修改 /etc/fstab 并重新挂载分区(ext4 和 xfs 写法不同)
Linux 配额是否生效,核心取决于挂载选项;如果参数名称写错,或者写在错误位置,用户磁盘配额就不会真正启用:
- ext4 分区:在对应行第四字段(挂载选项)末尾添加
,usrquota,例如:/dev/sda1 /home ext4 defaults,usrquota 0 2 - xfs 分区:必须使用
,uquota(不是usrquota),否则即使mount -o remount不报错,配额功能也依然无效:UUID=abc123 /home xfs defaults,uquota 0 0 - 修改完成后,立即执行
sudo mount -o remount /home重新挂载,不能只等系统重启后再验证 - 检查是否成功生效:运行
mount | grep '/home',输出中必须看到usrquota(ext4)或uquota(xfs)
初始化 aquota.* 数据库(ext4)或通过 xfs_quota 初始化(xfs)
配额数据库是系统生成的二进制文件,并不是普通文本配置文件,手动使用 touch 或 chmod 创建它们是 Linux 配额配置中非常常见的错误操作:
- ext4:
进入挂载点目录(例如cd /home),运行sudo quotacheck -cugm /home
执行后再检查:ls -lh aquota.*,应显示为非零字节文件;如果文件大小为 0 字节,可能是 SELinux 阻止写入,可临时关闭:sudo setenforce 0 - xfs:
不需要创建 aquota.* 文件,直接运行sudo xfs_quota -x -c 'print' /home完成初始化
然后使用sudo xfs_quota -x -c 'limit bsoft=51200 bhard=102400 alice' /home设置限制(单位为 KB) - 这一步不能跳过:如果没有有效的配额数据库,不管是
edquota还是xfs_quota limit,后续设置都不会真正生效
启用 quotaon 并使用 edquota 设置用户限制(ext4)
在 Linux 中,启用配额和设置限制是两个独立步骤,只完成其中之一,最终都等于没有正确设置用户配额:
- 先运行
sudo quotaon /home启用配额;再验证:sudo quotaon -p,输出中应显示user quota on /home ... is on - 再执行
sudo edquota -u alice,编辑器中填写的数值单位是 KB,不是 MB:
例如软限制 50MB → 应填写51200,硬限制 100MB → 应填写102400 - 不建议直接使用
setquota一键设置:它会绕过编辑器校验,如果单位输错(例如把50当成 50MB,实际上只是 50KB),可能导致用户刚创建家目录就因为磁盘配额限制而无法写入 - 测试前一定要切换到目标用户:
su - alice,然后再向/home/alice写入文件;查看用户配额使用情况应使用quota -u alice,不要用du
在 Linux 设置磁盘配额时,最容易被忽略的通常就是单位(KB)和初始化顺序这两个关键细节:quotacheck 必须先于 quotaon 执行,而且一定要确认成功生成非空的 aquota.* 文件;在 xfs 文件系统中,uquota 也绝不能误写成 usrquota;此外,所有配置都建立在挂载点路径完全准确匹配的前提下,路径中斜杠多一个或少一个,都可能让整个用户磁盘配额配置直接失效。
