1. 程式人生 > >Linux配置啟動掛載:fstab檔案詳解

Linux配置啟動掛載:fstab檔案詳解

fstab檔案介紹

fstab檔案包含了你的電腦上的儲存裝置及其檔案系統的資訊。它是決定一個硬碟(分割槽)被怎樣使用或者說整合到整個系統中的檔案。具體來說:用fstab可以自動掛載各種檔案系統格式的硬碟、分割槽、可移動裝置和遠端裝置等。對於Windows與Linux雙作業系統使用者,用fstab掛載FAT格式和NTFS格式的分割槽,可以在Linux中共享windows系統下的資源。

這個檔案的全路徑是/etc/fstab。它只是一個文字檔案,你能夠用你喜歡的編輯器開啟它,但是必須是root使用者才能編輯它。同時fsck、mount、umount的等命令都利用該程式。

/etc/fstab 是啟動時的配置檔案,不過,實際 filesystem 的掛載是記錄到 /etc/mtab 與 /proc/mounts 這兩個檔案當中的。每次我們在更動 filesystem 的掛載時,也會同時更動這兩個檔案喔!

系統掛載的一些限制:

  • 根目錄 / 是必須掛載的﹐而且一定要先於其它 mount point 被掛載進來。
  • 其它 mount point 必須為已建立的目錄﹐可任意指定﹐但一定要遵守必須的系統目錄架構原則
  • 所有 mount point 在同一時間之內﹐只能掛載一次。
  • 所有 partition 在同一時間之內﹐只能掛載一次。
  • 如若進行卸除﹐您必須先將工作目錄移到 mount point(及其子目錄) 之外。

檔案各欄位解釋

示例:

# <fs>            <mountpoint>    <type>        <opts>        <dump/pass>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.

/dev/sda10        /boot            ext4        noauto,noatime    1 2
/dev/sda6         /                ext4        noatime           0 1
/dev/sda9         none             swap        sw                0 0
/dev/cdrom        /mnt/cdrom       auto        noauto,ro         0 0

其實 /etc/fstab (filesystem table) 就是將我們利用 mount 命令進行掛載時, 將所有的選項與引數寫入到這個檔案中就是了。除此之外, /etc/fstab 還加入了 dump 這個備份用命令的支援! 與啟動時是否進行檔案系統檢驗 fsck 等命令有關。

  • <file systems> 掛載裝置 : 不是我們通常理解的檔案系統,而是指裝置(硬碟及其分割槽,DVD光碟機等)。它告知我們裝置(分割槽)的名字,這是你在命令列中掛載(mount)、解除安裝(umount)裝置時要用到的。
  • <mountpoint> 掛載點:告訴我們裝置掛載到哪裡。
  • <type> 檔案系統型別:Linux支援許多檔案系統。 要得到一個完整的支援名單查詢mount man-page。典型 的名字包括這些:ext2, ext3, reiserfs, xfs, jfs,iso9660, vfat, ntfs, swap和auto, 'auto' 不是一個檔案系統,而是讓mount命令自動判斷檔案型別,特別對於可移動裝置,軟盤,DVD驅動器,這樣做是很有必要的,因為可能每次掛載的檔案型別不一致。
  • <opts> 檔案系統引數:這部分是最有用的設定!!! 它能使你所掛載的裝置在開機時自動載入、使中文顯示不出現亂碼、限制對掛載分割槽讀寫許可權。它是與mount命令的用法相關的,要想得到一個完整的列表,參考mount manpage.
  • <dump> 備份命令:dump utility用來決定是否做備份的. dump會檢查entry並用數字來決定是否對這個檔案系統進行備份。允許的數字是0和1。如果是0,dump就會忽略這個檔案系統,如果是1,dump就會作一個備份。大部分的使用者是沒有安裝dump的,所以對他們而言<dump>這個entry應該寫為0。
  • <pass> 是否以fsck檢驗扇區:啟動的過程中,系統預設會以fsck檢驗我們的 filesystem 是否完整 (clean)。 不過,某些 filesystem 是不需要檢驗的,例如記憶體置換空間 (swap) ,或者是特殊檔案系統例如 /proc 與 /sys 等等。fsck會檢查這個頭目下的數字來決定檢查檔案系統的順序,允許的數字是0, 1, 和2。0 是不要檢驗, 1 表示最早檢驗(一般只有根目錄會配置為 1), 2 也是要檢驗,不過1會比較早被檢驗啦!一般來說,根目錄配置為1,其他的要檢驗的filesystem都配置為 2 就好了。

<opts>常用引數:

  • noatime 關閉atime特性,提高效能,這是一個很老的特性,放心關閉,還能減少loadcycle
  • defaults 使用預設設定。等於rw,suid,dev,exec,auto,nouser,async,具體含義看下面的解釋。
  • 自動與手動掛載:
    auto 在啟動或在終端中輸入mount -a時自動掛載
    noauto 裝置(分割槽)只能手動掛載
  • 讀寫許可權:
    ro 掛載為只讀許可權
    rw 掛載為讀寫許可權
  • 可執行:
    exec 是一個預設設定項,它使在那個分割槽中的可執行的二進位制檔案能夠執行
    noexec 二進位制檔案不允許執行。千萬不要在你的root分割槽中用這個選項!!!
  • I/O同步:
    sync 所有的I/O將以同步方式進行
    async 所有的I/O將以非同步方式進行
  • 戶掛載許可權:
    user 允許任何使用者掛載裝置。 Implies noexec,nosuid,nodev unless overridden.
    nouser 只允許root使用者掛載。這是預設設定。
  • 臨時檔案執行許可權:
    suid Permit the operation of suid, and sgid bits. They are mostly used to allow users on a computer system to execute binary executables with temporarily elevated privileges in order to perform a specific task.
    nosuid Blocks the operation of suid, and sgid bits.

重啟系統

重啟系統,或在終端中輸入mount -a就可以看到修改後的效果了。