我的针对根分区(ext3)的Linux磁盘限额配置经历

针对非根分区的分区,比如/home,这样的quota很好做,主要就是quotacheck,edquota,quotaon/quotaoff这三个东西,具体的可以看之前发过的有关quota的配置文章,说的很不错的。 

这次想针对根分区做一个quota,因为之前/home没有分成一个单独的分区。做了一下,发现其实和做单独的分区做法是一样的,只有一点很小的差别,从中也悟出了一些道理,于是记录在此: 

1. /etc/fstab中是需要加入usrquota, grpquota这两个选项的 

2. 和普通分区一样,根分区也可以mount -o remount /来达到重新挂载根分区的目的。不必重启系统的。如果没有做这个命令,也没有重启,也就是说,usrquota,grpquota这两个option没有生效的话,执行quotacheck会出现这样的错误: 

CODE: SELECT ALL
quotacheck: Mountpoint (or device) / not found.
quotacheck: Can't find filesystem to check or filesystem not mounted with quota option.


3. 然后执行quotacheck -ug /,出现如下的错误:

CODE: SELECT ALL
quotacheck: Cannot remount filesystem mounted on / read-only so counted values might not be right.
Please stop all programs writing to filesystem or use -m flag to force checking.


其实出现这样的问题非常简单。就是quotacheck这个东西其实就是统计指定分区上的文件信息,主要是统计文件是谁建的,一个user拥有多少个文件,占用的磁盘容量是多少等等。所以,quotacheck在执行的一开始,就会尝试remount这个分区成read only的模式,因为这样可以避免在quotacheck执行的过程中发现对这个分区的写操作,从而使统计得到的数据准确。

但是根分区这样做是不行的,这也是根分区上的quota配置和其他分区唯一不一样的地方。因为和普通分区不一样,根分区除了给用户用之外,Linux系统本身也要用,所以quotacheck无法将根分区以read only的方式remount,也就出现了上面的错误信息。办法只有一个,就是加上m,f这两个option,强行执行quotacheck,当然,前提是我们确保此时的确没有用户往根分区写入数据:
 

quotacheck -ugvmf / 

这样就OK了,两个quota文件生成。 

4. 下面就和配置一个普通分区上的quota一模一样了,用edquota配置具体限额大小,然后用quotaon/quotaoff来打开和关闭quota 

所以,在根分区上做quota,和在其他分区上做基本上一样的,唯一不一样的就是quotacheck的时候带上m,f两个option
原文地址:https://www.cnblogs.com/super119/p/1909955.html