配额启用需严格按四步执行:改/etc/fstab加usrquota、remount、quotacheck -cugm初始化数据库、quotaon激活;usrquota必须出现在mount输出中,且仅对挂载点生效,不支持子目录或root用户。

必须按顺序执行四步:改 /etc/fstab、remount、运行 quotacheck -cugm、再 quotaon;跳过任意一步,quota -u username 都会显示 none 或报 no filesystem mounted with quota option。
怎么确认目标分区已启用 usrquota 挂载选项
配额是绑定在挂载点上的,不是全局或按目录生效。先查当前挂载参数是否含 usrquota:
- 运行
mount | grep /home(把/home替成你的目标路径),输出里必须出现usrquota - 若没有,编辑
/etc/fstab,在对应行第4列(挂载选项)末尾加,usrquota,例如:/dev/sdb1 /home ext4 defaults,usrquota 0 2 - 执行
sudo mount -o remount /home生效;注意:ext4不支持用-o quota临时挂载,必须写进/etc/fstab并remount - XFS 文件系统不走这套流程,得用
xfs_quota,别混用
quotacheck -cugm /path 是初始化配额数据库的关键动作
它不是“检查是否超限”,而是扫描文件系统并生成 aquota.user 和 aquota.group —— 这两个文件必须存在且可写,后续所有操作才可能成功:
- 首次必须带
-c(create),否则报Quotafile /home/aquota.user not found -
-u处理用户配额,-g处理组配额,-m强制检查(常用于刚改完fstab后,绕过“未标记为 quota-enabled”的校验) - 执行后检查目标路径下是否有非空的
aquota.user(大小通常 >0);若仍是空文件或不存在,常见原因是权限不足或路径写错 - 别手动
touch或chmod这两个文件 ——quotacheck会自动设好属主(root)和权限(600)
用 edquota -u username 设置软硬限制时容易填错行和单位
edquota 打开的是临时编辑器界面,里面两列数字分别代表软限制(soft)、硬限制(hard),单位是 KB;第三列是宽限期(只对软限制生效):
- 第一行是
blocks(磁盘空间),第二行是inodes(文件数量);改错行会导致限制完全失效 - 例如设软限 500MB、硬限 512MB,应填
512000 524288,不是500 512—— 单位是 KB,不是 MB - 宽限期默认 7 天,建议保留或明确设为
7 days;编辑保存后不会立即生效,必须配合quotaon - 若之后用
setquota直接覆盖,edquota的修改会被冲掉
整个过程最易被忽略的是:配额只对普通用户生效,root 不受限制;而且它严格绑定在文件系统层级(如 /dev/sdb1 对应的 /home),不能针对子目录单独设限 —— 如果你试图在 /home/user1/subdir 上单独配额,这条路走不通。











