2012年7月6日 星期五

quota (配額) 釋疑 (未完成)

       Linuxext234的檔案系統,可以作quota(配額)的設定,相關的指令工具有:

mount:
quotacheck:
quotaon/off:
repquota:
edquota:
quota:

     指令「quotaon」有一個選項「-a」,該選項的man_page說明如下:
All automatically mounted (no noauto option) non-NFS filesystems in /etc/fstab with quotas will have their quotas turned on. This is normally used at boot time to enable quotas.

        上面的內容易讓人誤解為「quotaon -a」,會去參考檔案「/etc/fstab」的內容來啟動檔案系統的quota功能。

其實不是這個意思。
基本上「quotaon -a」和「quotacheck -a」,這個選項「-a」都是去參考檔案「/etc/mtab」的內容來作quota的運作。

證明:
我們設計一個Lab環境:
1.在檔案「etc/fstab」裡頭加入一筆資料
/tmp/quota     /mnt/fs1    ext2   loop,auto,usrquota   0  0


2.重新開機,之後該檔案系統會在系統啟動時被自動掛載到系統,並啟動quota的功能。

3.緊接著,我們手動將這個檔案系統「/tmp/quota」卸載,執行命令行「mount -n -t ext2 -o loop,auto,usrquota /mnt/fs1」,重新掛載該檔案系統;由於指令「mount」的選項「-n」的作用在於〝會將檔案系統掛載,但卻不會將掛載的訊息更新到檔案「/etc/mtab」中〞。此時再執行「quotaon -a」時,會發現在該檔案系統的quota是沒用啟動的。

結論:quotaon -a基本上是參考檔案「/etc/mtab」。



 
回過頭來,該man_page的內容所要強調的是,在系統啟動的時候,在啟動流程中有一個啟動檔「/etc/rc.d/rc.sysinit」裡有紀錄要執行指令「mount -a」,緊接著執行「quotacheck -auvg」和「qutaon -aug」。由於「mount -a」是參考「/etc/fstab」的內容,所以此時「mtab」和「fstab」內容都是一樣的。

因此,如果我們希望系統啟動時就能自動使用有配額功能的檔案系統,我們只要在檔案「/etc/fstab」寫好紀錄就可以了。quotacheckquotaon在啟動檔中會幫我們執行。

沒有留言 :