FlossDoc: 請協力 GPLv3 的中文翻譯工作。

配置檔案系統掛載

FlossDoc,自由中文開源知識庫

Jump to: navigation, search

一般 Unix/Linux 的檔案系統掛載是由系統設定檔 /etc/fstab 控制。fstab 不但決定了開機時自動要掛載包括根目錄 (/) 的檔案系統,mount、umount 和 fsck 等檔案系統相關命令亦由 fstab 中取得掛載個別裝置時使用的選項和需要進行檔案系統檢查的裝置等。[1]

目录

fstab 檔案格式

以下是一個典型的 fstab 內容:

# /etc/fstab: static file system information.
#
# <device name> <mount point>   <type>   <options>       <dump>  <pass>
proc            /proc           proc     defaults        0       0
/dev/hda6       /               ext3     defaults        0       1
/dev/hda1       /boot           ext3     defaults        0       2
/dev/hda5       none            swap     sw              0       0
/dev/hdc        /media/cdrom0   iso9660  ro,user,noauto  0       0
/dev/fd0        /media/floppy0  auto     rw,user,noauto  0       0
/dev/hda        /media/winxp    ntfs     defaults        0       0

fstab 的格式為每列表示一個檔案系統的設定。每一列可以有六欄,欄與欄之間以空格/Tab分開,六欄的作用如下:

  1. 裝置名稱 (Device name) - 要掛載檔案系統所在的儲存裝置檔案。
  2. 掛載點 (Mount Point) - 掛載的目錄
  3. 檔案系統類型 (Filesystem Type) - 掛載檔案系統的類型,例如 ext3、xfs、jfs、swap、proc 等。
  4. 掛載選項 (Mount Options) - 掛載檔案系統時的選項,例如 defaults、sync、noatime 等。
  5. dump - 用 dump 命令備份是否備份這個檔案系統的內容。
  6. pass - 啟動系統 fsck 是否檢查這個檔案系統和檢查的次序。

裝置名稱 (Device name)

要掛載檔案系統所在的儲存裝置檔案,亦可以使用檔案系統標簽 (filesystem label)UUID 表示要掛載儲存裝置。

掛載點 (Mount Point)

檔案系統會被掛載於的目錄位置,此目錄必需要事前已被建立的。

檔案系統類型 (Filesystem Type)

GNU/Linux 上,檔案系統類型可以是 (完整列表請參看《GNU/Linux 支援的檔案系統》

  • ext2 (Second Extended Filesystem) - 曾成為 GNU/Linux 預設檔案系統超過十年的檔案系統,穩定但沒有支援日誌 (journal) 功能。使用 ext2 作檔案系統類型掛載 ext3 或未使用 Extent 的 ext4 檔案系統可以停用日誌功能和避免使用日誌紀錄自動修復檔案系統。
  • ext3 (Third Extended Filesystem) - Ext2 的後繼者,主要加入日誌 (journal) 功能,亦是現時大部份 GNU/Linux 的預設檔案系統。未使用 Extent 的 ext4 檔案系統可以使用 ext3 作檔案系統類型來掛載。
  • ext4 (Fourth Extended Filesystem) - Ext3 的後繼者,主要加入 extent 等對其效能有很大提升的功能。Linux 由 2.6.28 開始正式支援,而 Fedora 早在 9 已開始支援。
  • reiserfs (ReiserFS) - Hans Reiser 為 Linux 設計的高性能日誌式檔案系統 (journaling filesystem),善長處理小型檔案。
  • xfs (SGI XFS) - 沿用在 SGI IRIX 多年的高性能日誌式檔案系統,被開放及移植至 Linux。善長處理大型檔案和 streaming。
  • jfs (IBM jfs) - IBM OS/2 和 AIX 使用的高性能日誌式檔案系統,被開放及移植至 Linux。
  • msdos (FAT) - MS-DOS/Win9x/WinME 和大部份記憶卡/USB 儲存裝置使用的檔案系統。但使用 msdos 作檔案系統類型來掛載就只能顯示和支援傳統的 8.3 短檔案名稱,所以最好使用 vfat。
  • vfat (FAT) - 同樣是 MS-DOS/Win9x/WinME 和大部份記憶卡/USB 儲存裝置使用的 FAT 檔案系統,但支援長檔案名稱
  • ntfs (NTFS) - Windows NT/2k/XP/2k3/Vista 使用的檔案系統。
  • iso9660 - 大部份 CD-ROM/CD-R/CD-RW 使用的檔案系統。
  • udf - 大部份 DVD 使用的檔案系統。

視乎內核編譯時的選項,個別 Linux 未必支援以上所有檔案系統。您可以查看檔案 /proc/filesystems 取得系統支援的檔案系統列表。沒有需要的檔案系統時,一般需重新編譯內核

掛載選項 (Mount Options)

掛載選項可以改變掛載裝置/檔案系統的一些表現,常用選項包括:

  • async/sync/dirsync - 預設 async 表示使用非同步 (asynchronize) 輸入/輸出,sync 表示使用同步 (synchronize) 輸入/輸出。
  • rw/ro - 預設 rw 表示許容讀寫裝置的內容,ro 表示唯讀模式,不容許改變內容。
  • exec/noexec - 預設 exec 表示容許執行檔案系統中的程式,noexec 則拒絕執行。
  • suid/nosuid - 預設 suid 表示容許使用 SUID/SGID,nosuid 表示不理會 SUID/SGID。
  • dev/nodev - 預設 dev 表示連接檔案系統中的裝置檔案至所指的周邊裝置、nodev 表示不會理會檔案系統中的裝置檔案。
  • atime/noatime/nodiratime/relatime
    • atime(預設) - 每次讀取檔案/目錄內容時,更新檔案/目錄 inode 上的最後存取時間 (access time)
    • noatime - 不會更新檔案 inode 上的最後存取時間。可以大大減輕檔案系統的負荷,但會令如 mutt 之類需要存取時間的應用程式不能正常運作。
    • nodiratime - 不會更新目錄 inode 上的最後存取時間
    • relatime - 每次讀取檔案/目錄內容時,只在檔案/目錄 inode 上原先的最後存取時間舊於最後修改時間 (modify time) 或更新時間 (change time) 才更新最後存取時間。可以減少對檔案系統的負荷,但不影響如 mutt 之類需要存取時間的應用程式。Linux 2.6.20 開始支援[2]

以下選項只有放在 fstab 中才有意義:

  • defaults - 掛載任何裝置時預設使用的選項,代表使用選項 rw、suid、dev、exec、auto、nouser 和 async。
  • auto/noauto - 決定開機或執行 mount -a 時是否自動掛載此裝置。預設 auto 表示會自動掛載,noauto 則不掛載,需要由使用者自行手動掛載。
  • nouser/user/users/owner/group - 決定何人有權掛載/卸載此裝置:
    • nouser - 預設選項,表示除系統管理員 root 外,無人有權掛載/卸載此裝置。
    • user - 容許一般使用者掛載此裝置,但只有掛載裝置的使用者和才系統管理員 root 可以卸載。使用設選項同時表示使用選項 noexec、nosuid 和 nodev。
    • users - 容許一般使用者掛載或卸載此裝置。使用設選項同時表示使用選項 noexec、nosuid 和 nodev
    • owner - 只有裝置檔案的擁有者或系統管理員 root 才有權掛載或卸載此裝置。使用設選項同時表示使用選項 nosuid 和 nodev。
    • group - 只有裝置檔案所屬群組 (user group) 的成員或系統管理員 root 才有權掛載或卸載此裝置。使用設選項同時表示使用選項 nosuid 和 nodev。
  • _netdev - 表示此檔案系統依附在網絡的裝置。主要用途是讓開機或使用命令 mount -aO no_netdev 可以略過相關網絡檔案系統,待開啟網絡連線後才掛載。

dump

用作表示用 dump 命令備份是否備份該檔案系統的內容。“0”值表示不備份這個檔案系統,非零值則表示 dump 會備份該檔案系統。

pass

用作表示啟動系統 fsck 是否檢查該檔案系統和檢查的次序。“0”值表示不檢查這個檔案系統,非零值則表示 fsck 會檢查該檔案系統。數值亦表示檢查的次序,先按數字由小至大順序檢查,相同數字則按先後排列。所謂檢查只是檢查該檔案系統是否已正常卸載 (unmount) 和是否到期需要進行完整的一致性檢查。

參考資料

  1. Wikipedia. “fstab”.
  2. Corbet, Jonathan (2007). Once upon atime. Linux Weekly News.

相關頁面

相關連結

Personal tools