針對非根分區的分區,比如/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