檔案系統就像一顆樹。/ 就像是樹根,而 /dev,/usr 以及其他在根目錄下的目錄就像是樹枝,而這些樹枝上面又還有分支,像是 /usr/local 等。
因為某些原因,我們會將一些目錄分別放在不同的檔案系統上。 如 /var 包含了可能會滿出來的 log/,spool/ 等目錄以及各式各樣的暫存檔。 把根檔案系統塞到滿出來顯然不是個好主意,所以我們往往會比較傾向把 /var 從 / 中拉出來。
另一個常見到把某些目錄放在不同檔案系統上的理由是: 這些檔案在不同的實體或虛擬磁碟機上。 像是網路檔案系統 (Network File System) 詳情可參考 節 28.3, “網路檔案系統 (NFS)” 或是光碟機。
在 /etc/fstab 裡面有設定的檔案系統會在開機 (章 12, FreeBSD 開機程序) 的過程中自動地被掛載 (除非該檔案系統有被加上 noauto 參數)。檔案內容的格式如下:
device /mount-point fstype options dumpfreq passnodevice已存在的裝置名稱,詳情請參閱 表格 3.3, “磁碟裝置名稱”。
mount-point檔案系統要掛載到的目錄 (該目錄必須存在)。
fstype檔案系統類型,這是要傳給 mount(8) 的參數。 FreeBSD 預設的檔案系統是 ufs。
options可讀可寫 (Read-Write) 的檔案系統用 rw,而唯讀 (Read-Only) 的檔案系統則是用 ro,後面視需要還可以加其他選項。 常見的選項如 noauto 是用在不要於開機過程中自動的掛載的檔案系統。 其他選項可參閱 mount(8) 說明。
dumpfreqdump(8) 由此項目決定那些檔案系統需要傾印。 如果這格空白則以零為預設值。
passno這個項目決定檔案系統檢查的順序。 對於要跳過檢查的檔案系統,它們的 passno 值要設為零。 根檔案系統的 passno 值應設為一 (因為需要比所有其他的還要先檢查),而其他的檔案系統的 passno 值應該要設得比一大。 若有多個檔案系統具有相同的 passno 值,則 fsck(8) 會試著平行地 (如果可能的話) 檢查這些檔案系統。
更多關於 /etc/fstab 檔案格式及選項的資訊請參閱 fstab(5) 說明文件。
mount(8) 指令是拿來掛載檔案系統用的。基本的操作指令格式如下:
# mount device mountpoint在 mount(8) 裡面有提到一大堆的選項,不過最常用的就是這些:
-a把 /etc/fstab 裡面所有還沒有被掛載、沒有被標記成 /etc/fstab 而且沒有用 -t 排除的檔案系統掛載起來。
-d執行所有的動作,但是不真的去呼叫掛載的系統呼叫 (System call)。 這個選項和 -v 搭配拿來推測 mount(8) 將要做什麼動作時很好用。
-f強迫掛載不乾淨的檔案系統 (危險),或是用來強制取消寫入權限 (把檔案系統的掛載狀態從可存取變成唯讀)。
-r用唯讀的方式掛載檔案系統。 這個選項和在 -o 選項中指定 ro 參數是一樣的。
-t
fstype用指定的檔案系統型態來掛載指定的檔案系統,或是在有 -a 選項時只掛載指定型態的檔案系統。預設的檔案系統類型為 “ufs”。
-u更新檔案系統的掛載選項。
-v顯示詳細資訊。
-w以可讀寫的模式掛載檔案系統。
-o 選項後面會接著以逗號分隔的參數:
不解析檔案系統上的 setuid 或 setgid 旗標, 這也是一個蠻有用的安全選項。
要缺載檔案系統可使用 umount(8) 指令。該指令需要一個參數可以是掛載點 (mountpoint),裝置名稱,以及 -a 或是 -A 等選項。
加上 -f 可以強制卸載,加上 -v 則是會顯示詳細資訊。 要注意的是一般來說用 -f 並不是個好主意,強制卸載檔案系統有可能會造成電腦當機, 或者損壞檔案系統內的資料。
-a 和 -A 是用來卸載所有已掛載的檔案系統,另外還可以用 -t 來指定要卸載的是哪些種類的檔案系統。 要注意的是 -A 並不會試圖卸載根檔案系統。
本文及其他文件,可由此下載: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。
若有 FreeBSD 方面疑問,請先閱讀
FreeBSD 相關文件,如不能解決的話,再洽詢
<questions@FreeBSD.org>。
關於本文件的問題,請洽詢
<doc@FreeBSD.org>。