Linux磁盘配额的设置与检测(1)(2)
检查配额包
如果您正在使用一个桌面系统,那么您可能无法安装配额包,因为配额不是普通的默认桌面系统安装的。使用 dpkg 或者 rpm 确认您是否安装了包,如清单 3。
清单 3. 检查配额包
# On Debian-based systems ian@pinguino:~$ dpkg -l quota Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii quota 4.00~pre1-3 implementation of the disk quota system # On systems that use RPM [ian@echidna ~]$ rpm -q quota quota-3.17-11.fc13.x86_64 如果您没有如本文所述安装配额包,在安装页 “学习 Linux,101:Debian 包管理” 和 学习 Linux,101:RPM 和 YUM 包管理 获取帮助。
配额的启用
添加配额支持到 /etc/fstab
启用配额的下一步是根据您是否想实现用户配额、组配额,或者两者兼有,添加适当选项到 /etc/fstab 的文件系统定义。XFS 文件系统也支持项目配额。
编写时,启用配额的选项不是集中记录在一个明显的手册页中。表 1 显示了可用的选项,以及它们适用的配额系统类型。
表 1. /etc/fstab 中的配额选项
选项 | 适用于 |
使用 |
usrquota | 所有类型 |
启用用户配额 |
usrjquota=filename | vfsv0 |
启用日志化的用户配额;需要一个配额数据库文件名(通常为 aquota.user)和 jqfmt 选项的规格 |
uquota | xfs |
相当于 usrquota |
grpquota | 所有类型 |
支持组配额 |
grpjquota=filename | vfsv0 |
启用日志化组配额;需要一个配额数据库文件名(通常为 aquota.group)和 jpfmt 选项的规格 |
gquota | xfs |
相当于 grpquota |
prjquota | xfs |
启用项目配额 |
pquota | xfs |
相当于 prjquota |
jqfmt=format | vfsv0 |
当 usrjquota 或者 grpjquota 被指定时使用的配额格式;目前只有 vfsv0 是受支持的格式 |
quota | vfsold,vfsv0 |
相当于 usrquota |
noquota | vfsold,vfsv0 |
不启用配额 |
uqnoenforce | xfs |
启用用户配额审计,但是不能启用强制措施 |
gqnoenforce | xfs |
启用组配额审计,但是不能启用强制措施 |
pqnoenforce | xfs |
启用项目配额审计,但是不能启用强制措施 |
我们使用一个 ext4 分区和一个 XFS 分区进行演示。我们将会在这些文件系统中添加用户和组配额,这样您就可以看到配额如何在两个不同的文件系统中运行。我们的 /etc/fstab 输入如清单 4 所示。
清单 4. 启用 /etc/fstab 中的配额支持
/dev/sda7 /quotatest/ext4 ext4 defaults,usrquota,grpquota 1 2 /dev/sda8 /quotatest/xfs xfs defaults,usrquota,grpquota 1 2
重新安装文件系统
编辑 /etc/fstab 和添加配额之后,您需要重新安装文件系统。对 XFS 文件系统来说,配额数据是文件系统元数据的一部分。对其他文件系统来说,用户配额信息存储在文件系统 root 的 aquota.user 文件,组配额也同样存储在 aquota.group。版本 1 配额使用 quota.user 和 quota.group。对这些文件系统来说,重新安装完文件系统之后,您必须创建配额文件,并启用配额进行检测。quotacheck 命令检查所有文件系统上的配额,如果 aquota.user 和 aquota.group 文件不存在,就会创建所需的 aquota.user 和 aquota.group 文件。它还能修复损坏的配额文件。查看手册页获得更多信息。
以下是通常和 quotacheck 命令一起使用的部分常用选项:
-a or --all
检查所有安装在 /etc/mtab(除了 NFS 文件系统)的文件系统
-c or --create-files
忽略当前的配额文件。运行新的扫描,将结果写到磁盘
-u or --user
检查用户配额(默认的)
-g or --group
检查组配额
-v or --verbose
Verbose 输出
清单 5 显示了在我们新安装的文件系统上运行 quotacheck 命令的结果。如果您没有使用 -a 选项,就必须指定您想要检查的文件系统。
清单 5. 创建 vfsold 和 vfsv0 的配额数据库文件
[root@echidna ~]# quotacheck -augvc quotacheck: Skipping /dev/sda8 [/quotatest/xfs] quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown. quotacheck: Scanning /dev/sda7 [/quotatest/ext4] done quotacheck: Cannot stat old user quota file: No such file or directory quotacheck: Cannot stat old group quota file: No such file or directory quotacheck: Cannot stat old user quota file: No such file or directory quotacheck: Cannot stat old group quota file: No such file or directory quotacheck: Checked 2 directories and 1 files quotacheck: Old file not found. quotacheck: Old file not found.
请注意,来自 quotacheck 命令的警告建议我们转而使用日志化的配额。将 /dev/sda7 上 ext4 文件系统 /etc/fstab 中的选项由
defaults,usrquota,grpquota
改为
defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,就能完成此变更。
还需要注意的是,XFS 文件系统可由 quotacheck 命令跳过,因为 XFS 配额结构包含在元数据和日志中。
评论暂时关闭