Linux磁盘配额需严格按三步启用:修改fstab挂载选项→运行quotacheck生成数据库→执行quotaon启用服务;ext4用usrquota/grpquota和edquota(blocks单位KB),XFS用uquota和xfs_quota(block单位512字节)。

Linux 磁盘配额不是装完软件包就自动生效的功能,必须严格按顺序完成三步:修改挂载选项 → 生成配额数据库 → 启用配额服务。任意一步遗漏,quota -u username 都会显示 "none",所有限制形同虚设。
确认目标分区是否支持并已启用配额
先查文件系统类型:
df -T /home(把 /home 换成你的实际挂载点)
再看挂载参数是否含配额标识:
mount | grep /home ——
ext4 分区需出现 usrquota 或 grpquota;
XFS 分区则必须是 uquota 或 gquota(写错如 XFS 写 usrquota 会静默失效)。
最后验证启用状态:
sudo quotaon -p —— 输出中对应分区应明确显示 user quota on /home is on。
ext4 文件系统的标准配置流程
这三步缺一不可,且顺序不能颠倒:
- 编辑
/etc/fstab,在目标分区挂载选项末尾添加,usrquota,grpquota(如:/dev/sdb1 /home ext4 defaults,usrquota,grpquota 0 2) - 立即生效:
sudo mount -o remount /home(不要等重启) - 扫描并生成数据库:
sudo quotacheck -cugm /home(-c强制新建,-m跳过忙状态检查) - 启用配额引擎:
sudo quotaon -uv /home(-u开用户配额,-v显示详情)
注意:aquota.user 是二进制数据库文件,不能手动创建、touch 或 chmod 后填内容——必须由 quotacheck 或 edquota 写入,否则校验失败。
设置与调整用户配额值
单位是关键:
- ext4 下
edquota -u username编辑时,blocks 字段单位是 KB(不是 MB,也不是 block):50MB = 51200 KB,100MB = 102400 KB - inode 限制单位是“个”,直接填数字,如
soft=80 hard=100 - 宽限期用
sudo edquota -t设置,默认 7 天 - 批量设置可用
sudo setquota -u username 51200 102400 0 0 /home,但易输错单位,建议新手优先用edquota - 复制模板更高效:
sudo edquota -p template_user alice bob
XFS 文件系统的配额管理方式不同
XFS 原生集成配额,不依赖 aquota.* 文件,也不用 quotacheck 和 edquota:
-
/etc/fstab中必须写,uquota(不是usrquota) - 初始化数据库:
sudo xfs_quota -x -c "print" /home - 设限(单位为 512 字节 block):
sudo xfs_quota -x -c "limit bsoft=51200 bhard=102400 isoft=80 ihard=100 testuser" /home - 查看用量:
xfs_quota -x -c "report -uh" /home(-h表示人性化单位) -
setquota对 XFS 无效,只能用xfs_quota


















