Linux磁盘配额必须按挂载点启用,先检查mount输出含usrquota(ext4)或uquota(XFS),再运行quotacheck生成aquota.user(ext4)或xfs_quota初始化(XFS),最后quotaon启用,缺一不可。

确认目标分区已启用 usrquota 挂载选项
配额不是全局开关,而是绑定在具体挂载点上的。如果 quota -u username 显示 none,第一件事就是检查该分区是否真的启用了配额支持。
运行 mount | grep /home(把 /home 替换为你实际的目标挂载点),输出中必须包含 usrquota。如果没有:
- 编辑
/etc/fstab,在对应分区的第4列(挂载选项)末尾追加,usrquota,例如:/dev/sdb1 /home ext4 defaults,usrquota 0 2 - 执行
sudo mount -o remount /home生效;XFS 文件系统同理,但后续流程不同 - 注意:
ext4不支持mount -o quota临时启用,必须写进/etc/fstab并remount
quotacheck -cugm 必须成功生成 aquota.user
这一步不是“检查配额是否超限”,而是扫描文件系统、生成配额数据库文件。没有它,所有后续操作都无效。
执行 sudo quotacheck -cugm /home 后,立刻检查 /home 根目录下是否存在 aquota.user 文件,且大小 > 0 字节。常见失败原因:
- 路径写错(比如写了
/home/username而不是挂载点/home) - 权限不足(
quotacheck需要读取整个文件系统,普通用户无法完成) - 文件系统正在被大量写入,导致扫描中断(建议在低负载时段执行)
不要手动 touch aquota.user 或 chmod 它——quotacheck 会自动设好属主(root)和权限(600)。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
用 edquota -u 或 setquota 设置限制时单位是 KB
edquota -u username 打开的是 vi 编辑器界面,里面两行分别对应 blocks(磁盘空间)和 inodes(文件数)。改错行会导致限制完全不生效。
第一行的两个数字是软限和硬限,单位是 KB:
- 想设 500MB 软限 + 512MB 硬限?填
512000 524288 - 第三列是宽限期(grace period),默认 7 天,只对软限起作用;留空或填
7 days即可 - 保存退出后不会立即生效,必须已运行过
quotaon;若之后用setquota覆盖,edquota的修改会被冲掉 - 批量设置更推荐
sudo setquota -u username 512000 524288 0 0 /home,跳过编辑器,脚本友好
XFS 文件系统必须用 xfs_quota,不能走 quotacheck 流程
如果你的 df -T /home 输出显示 Type 是 xfs,那前面所有 quotacheck、quotaon、edquota 全部无效——XFS 原生配额不依赖 aquota.* 文件。
正确流程是:
- 确保已安装
xfsprogs(sudo apt install xfsprogs或sudo yum install xfsprogs) -
/etc/fstab中同样要加,usrquota并remount - 初始化:运行
sudo xfs_quota -x -c 'print' /home - 设限:运行
sudo xfs_quota -x -c 'limit -u bsoft=512000 bhard=524288 username' /home
最容易被忽略的是:XFS 的配额命令必须带 -x(expert mode)和 -c,漏掉就报错或静默失败。

















