系统支持磁盘配额需同时满足:内核启用config_quota(y/m),且文件系统挂载时含usrquota或grpquota选项;ext4需加载quota_v2模块并初始化aquota.*文件,xfs则用xfs_quota;配额生效前须quotacheck -cug、quotaon,并确保配额文件权限600、位于根目录。

如何确认系统是否支持磁盘配额
Linux 内核从 2.4 起就默认启用配额支持,但实际能否用,取决于两个条件:内核编译时是否开启 CONFIG_QUOTA,以及挂载文件系统时是否加了 usrquota 或 grpquota 选项。很多用户配了半天没效果,其实是忘了在 /etc/fstab 里补上配额标记。
- 运行
zcat /proc/config.gz | grep CONFIG_QUOTA(若存在)或检查grep CONFIG_QUOTA /boot/config-$(uname -r),确认输出为y或m - 查看当前挂载选项:
mount | grep ' /home ',如果没看到usrquota就得重挂 - ext4/xfs 都支持,但 xfs 的配额是内建的,不需要额外加载模块;ext4 则依赖
quota模块,需确保modprobe quota_v2成功
初始化配额数据库(quotacheck 容易出错的点)
quotacheck 不是“启动配额”,它只是扫描文件系统、生成初始的 aquota.user 和 aquota.group 文件。跳过这步直接 quotaon,会报 Device or resource busy 或压根不生效。
- 必须先卸载再挂载(或用
remount),且挂载项含usrquota,否则quotacheck -cug /home会提示Not all filesystems have been checked -
-c创建新数据库,-u处理用户配额,-g处理组配额,-v显示过程——别漏掉-c,否则旧数据残留会导致统计不准 - xfs 用户请改用
xfs_quota,quotacheck对 xfs 无效,强行运行无输出也无报错,极易误判成功
给用户设硬限制和软限制(edquota 的关键参数含义)
edquota -u username 打开的是一个临时文本编辑器界面,里面两列数字分别对应软限制(soft limit)和硬限制(hard limit),单位是 KB。很多人设完发现 quota 不触发,是因为混淆了“宽限期”和“是否启用”。
Sylius开源电子商务平台是一个开源的 PHP 电子商务网站框架,基于 Symfony 和 Doctrine 构建,为用户量身定制解决方案。可管理任意复杂的产品和分类,每个产品可以设置不同的税率,支持多种配送方法,集成 Omnipay 在线支付。功能特点:前后端分离Sylius 带有一个强大的 REST API,可以自定义并与您选择的前端或您的微服务架构很好地配合使用。如果您是 Symfony
- 第一行
blocks控制磁盘空间,第二行inodes控制文件数;修改只影响当前用户,edquota -p template_user username可复制模板 - 软限制不是“警告阈值”:当用量超软限制但未超硬限制时,系统允许继续写入,但开始倒计时宽限期(默认 7 天);宽限期一过,哪怕没到硬限制也会拒绝写入
- 宽限期在
edquota编辑界面底部显示,用edquota -t单独调整,单位是秒,别填错成天数
quotaon 启用后仍不生效的常见原因
quotaon -avug 看起来执行成功,但 quota username 仍显示 “no quota” 或数值为 0,大概率是路径、权限或服务状态没对齐。
- 检查配额文件位置:ext4 要求
aquota.user和aquota.group在文件系统根目录(如/home/aquota.user),且权限必须是600、属主root - systemd 环境下,某些发行版(如 Ubuntu 22.04+)默认禁用
quota服务,需手动systemctl enable --now quota - 如果用 LVM 或 btrfs,配额逻辑不同:btrfs 用子卷配额,LVM 逻辑卷本身不感知配额,必须在文件系统层配置
配额真正起效前,一定要用 repquota -a 看整体状态,再用 quota -u username 验证单个用户——别只信 quotaon 的返回码。宽限期、文件系统类型、配额文件位置,这三个点错一个,前面所有操作都白做。









