3.6. 掛載與卸載檔案系統
前一頁 | 章 3. UNIX 基礎概念 | 下一頁

## 3.6. 掛載與卸載檔案系統

檔案系統就像一顆樹。`/` 就像是樹根，而 `/dev`，`/usr` 以及其他在根目錄下的目錄就像是樹枝，而這些樹枝上面又還有分支，像是 `/usr/local` 等。

因為某些原因，我們會將一些目錄分別放在不同的檔案系統上。 如 `/var` 包含了可能會滿出來的 `log/`，`spool/` 等目錄以及各式各樣的暫存檔。 把根檔案系統塞到滿出來顯然不是個好主意，所以我們往往會比較傾向把 `/var` 從 `/` 中拉出來。

另一個常見到把某些目錄放在不同檔案系統上的理由是： 這些檔案在不同的實體或虛擬磁碟機上。 像是網路檔案系統 (Network File System) 或是光碟機。

### 3.6.1. `fstab` 檔

在 `/etc/fstab` 裡面有設定的檔案系統會在開機 的過程中自動地被掛載 (除非該檔案系統有被加上 `noauto` 參數)。

`/etc/fstab` 檔案內容的格式如下：

`device` `/mount-point` `fstype` `options` `dumpfreq` `passno`

`device`

  裝置名稱 (該裝置必須真的存在)。 詳情請參閱 節 18.2, “裝置名稱”.

`mount-point`

  檔案系統要掛載到的目錄 (該目錄必須真的存在)。

`fstype`

  檔案系統類型，這是要傳給 mount(8) 的參數。 FreeBSD 預設的檔案系統是 `ufs`。

`options`

  可讀可寫的檔案系統用 `rw`，而唯讀的檔案系統則是用 `ro`，後面視需要還可以加其他選項。 常見的選項如 `noauto` 是用在不要於開機過程中自動的掛載的檔案系統。 其他選項可參閱 mount(8) 說明。

`dumpfreq`

  dump(8) 由此項目決定那些檔案系統需要傾印。 如果這格空白則以零為預設值。

`passno`

  這個項目決定檔案系統檢查的順序。 對於要跳過檢查的檔案系統，它們的 `passno` 值要設為零。 根檔案系統的 `passno` 值應設為一 (因為需要比所有其他的還要先檢查)，而其他的檔案系統的 `passno` 值應該要設得比一大。 若有多個檔案系統具有相同的 `passno` 值，則 fsck(8) 會試著平行地(如果可能的話)檢查這些檔案系統。

更多關於 `/etc/fstab` 檔案格式及選項的資訊請參閱 fstab(5) 說明文件。

### 3.6.2. `mount` 指令

mount(8) 指令是拿來掛載檔案系統用的。

基本的操作指令格式如下:

`#` `mount `device` `mountpoint``

在 mount(8) 裡面有提到一大堆的選項，不過最常用的就是這些：

掛載選項

`-a`

  把 `/etc/fstab` 裡面所有還沒有被掛載、沒有被標記成 “noauto” 而且沒有用 `-t` 排除的檔案系統掛載起來。

`-d`

  執行所有的動作，但是不真的去呼叫掛載的 system call。 這個選項和 `-v` 搭配拿來推測 mount(8) 將要做什麼動作時很好用。

`-f`

  強迫掛載不乾淨的檔案系統 (危險)，或是用來強制取消寫入權限 (把檔案系統的掛載狀態從可存取變成唯讀)。

`-r`

  用唯讀的方式掛載檔案系統。 這個選項和在 `-o` 選項中指定 `ro` (在 FreeBSD 5.2之前的版本是用 `rdonly`) 參數是一樣的。

`-t` `fstype`

  用指定的檔案系統型態 (fstype) 來掛載指定的檔案系統，或是在有 `-a` 選項時只掛載指定型態的檔案系統。

  預設的檔案系統是 “ufs”。

`-u`

  更新檔案系統的掛載選項。

`-v`

  顯示較詳細資訊。

`-w`

  以可存取的模式掛載檔案系統。

`-o` 選項後面會接著以逗號分隔的參數，例如：

noexec

  不允許在這個檔案系統上執行二進位程式碼， 這也是一個蠻有用的安全選項。

nosuid

  不解析檔案系統上的 setuid 或 setgid 旗標， 這也是一個蠻有用的安全選項。

### 3.6.3. `umount` 指令

umount(8) 指令的參數可以是掛載點 (mountpoint)，裝置名稱，以及 `-a` 或是 `-A` 等選項。

加上 `-f` 可以強制卸載，加上 `-v` 則是會顯示詳細資訊。 要注意的是一般來說用 `-f` 並不是個好主意，強制卸載檔案系統有可能會造成電腦當機， 或者損壞檔案系統內的資料。

`-a` 和 `-A` 是用來卸載所有已掛載的檔案系統，另外還可以用 `-t` 來指定要卸載的是哪些種類的檔案系統。 要注意的是 `-A` 並不會試圖卸載根檔案系統。

前一頁 | 上一層 | 下一頁
3.5. 磁碟組織 | 起始頁 | 3.7. 程序

本文及其他文件，可由此下載： ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。

若有 FreeBSD 方面疑問，請先閱讀 FreeBSD 相關文件，如不能解決的話，再洽詢 <questions@FreeBSD.org>。
關於本文件的問題，請洽詢 <doc@FreeBSD.org>。