/etc/fstab 文件解釋[轉]

轉自:http://ckc620.blog.51cto.com/631254/394238node

文件fstab包含了你的電腦上的存儲設備及其文件系統的信息。它是決定一個硬盤(分區)被怎樣使用或者說整合到整個系統中的惟一文件。linux

這個文件的全路徑是/etc/fstab。它只是一個文本文件,你可以用你喜歡的編輯器打開它,可是必須是root用戶才能編輯它。同時fsck、mount、umount的等命令都利用該程序。windows

具體來講:用fstab能夠自動掛載各類文件系統格式的硬盤、分區、可移動設備和遠程設備等。對於Windows與arch雙操做系統用戶,用fstab掛載FAT格式和NTFS格式的分區,能夠在Linux中共享windows系統下的資源。less

fstab文件示例

如今讓咱們看一下一個典型的fstab文件:async

# <file system><dir><type><options><dump><pass>
none                   /dev/pts      devpts    defaults                0      0
none                   /dev/shm      tmpfs     defaults                0      0

/dev/cdrom             /media/cd     iso9660   ro,user,noauto,unhide   0      0
/dev/dvd               /media/dvd    udf       ro,user,noauto,unhide   0      0
/dev/fd0               /media/fl     auto      user,noauto             0      0

/dev/hda1              swap          swap      defaults                0      0
/dev/hda4              /             ext3      defaults                0      1
/dev/hda3              /home         xfs       rw,suid,exec,auto,nouser,async 0      2
</pass></dump></options></type></dir></file>

fstab詳解

讓咱們對fstab的用法進行一個詳細的瞭解。一個典型的entry有下面的fields (fields用空格或tab分開):編輯器

<file system><dir><type><options><dump><pass></pass></dump></options></type></dir></file>
  • <file systems> 不是咱們一般理解的文件系統,而是指設備(硬盤及其分區,DVD光驅等)。它告知咱們設備(分區)的名字,這是你在命令行中掛載(mount)、卸載(umount)設備時要用到的。so one should substitute for this entry the device name, remote partition, or similar. </file>
  • , 告訴咱們設備掛載到哪裏。
  • <type> 指掛載設備或分區爲什麼種文件系統類型(例如:ext2, ext3, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap等)。 archLinux支持許多文件系統。 要獲得一個完整的支持名單查找mount man-page。典型 的名字包括這些:ext2, ext3, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap和auto, 'auto' 不是一個文件系統,而是讓mount命令自動判斷文件類型,特別對於可移動設備,軟盤,DVD驅動器,這樣作是頗有必要的,由於可能每次掛載的文件類型不一致。 </type>
  • <options>,選項,這部分是最有用的設置!!! </options>

它能使你所掛載的設備在開機時自動加載、使中文顯示不出現亂碼、限制對掛載分區讀寫權限。它是與mount命令的用法相關的,要想獲得一個完整的列表,參考mount manpage.ide

    • 推薦參數
   noatime   關閉atime特性,提升性能,這是一個很老的特性,放心關閉,還能減小loadcycle
    • 默認設置
   defaults  使用默認設置。等於rw,suid,dev,exec,auto,nouser,async,具體含義看下面的解釋。
    • 自動與手動掛載
   auto  在啓動或在終端中輸入mount -a時自動掛載
   noauto  設備(分區)只能手動掛載 The file system can be mounted only explicitly.

    • IO編碼設置
   iocharset=   在=號後面加入你的本地編碼,彷佛在這個設備(分區)中作文件IO的時候就會自動作編
   碼的格式轉換。
   例如:你的某個分區是編碼是utf8,而設備中文件的編碼是gb2312,當是複製你設備中的文件到你的這
   個分區時,它將自動作編碼轉換。  
   
   (不知道個人理解對不對,可是好像用下面的nls就能夠實現轉換。)
    • 中文亂碼的解決
   nls=     在=號後面加入你的本地編碼,你的中文就不會出現亂碼。
    • 讀寫權限
   umask=   這是關於讀寫權限的,好像比下面的ro,rw選項更管用!!!
   例如:umask=000或0222,使得掛載時option中有default,普通用戶仍然能讀寫掛載設備中的東西。
               
   請你們補充!!!

   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.


 


 

  • <dump> 是dump utility用來決定是否作備份的. 安裝以後(Arch Linux默認是不安裝dump的), dump會檢查entry並用數字來決定是否對這個文件系統進行備份。容許的數字是0和1。若是是0,dump就會忽略這個文件系統,若是是1,dump就會做一個備份。大部分的用戶是沒有安裝dump的,因此對他們而言<dump>這個entry應該寫爲0。 </dump></dump>
  • <pass> fsck會檢查這個頭目下的數字來決定檢查文件系統的順序(looks at the number substituted for <pass> and determines in which order the file systems should be checked)。容許的數字是0, 1, 和2。 文件系統的<pass>選項是0將不會被fsck utility檢查。root文件系統應該擁有最高的優先權, 1,而全部其它的文件系統,若是你想讓它被check的話,應該寫成2。 </pass></pass></pass>

注意: 除了直接用設備(分區)名字,你也能夠用UUID或卷名。格式 LABEL=性能

用fstab自動掛載FAT32和NTFS分區

1.先在用fdisk -l(可能須要在root權限下)獲得硬盤信息表,例如:ui

#  Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        2397    19253871    b  W95 FAT32
/dev/sda2            2398        3144     6000277+  83  Linux
/dev/sda3            3145        9729    52894012+   5  Extended
/dev/sda5            3145        3152       64228+  83  Linux
/dev/sda6            3153        3276      995998+  82  Linux swap / Solaris
/dev/sda7            3277        7340    32644048+  83  Linux
/dev/sda8            7341        9729    19189611    7  HPFS/NTFS

從上面知道,這臺電腦上只有一個硬盤,其中分區sda1和sda8爲NTFS格式,sda1爲能夠啓動的,於是可能爲window的系統所在盤。下面把系統盤以只讀方式持載上去,非系統盤sda8以讀寫方式掛載上去(不能掛載在"/"及其如下的任何目錄)。this

2.用你喜歡的編輯器在終端中打開/etc/fstab,例如:

                    nano /etc/fstab

在文件末尾加入:

/dev/sda1 /mnt/WindowsC vfat defaults,codepage=936,iocharset=cp936,umask=0222 0 0
/dev/sda8 /mnt/WindowsD ntfs defaults,iocharset=utf8,umask=000,nls=utf8 0 0

保存,退出。

警告:使用936的codepage掛在fat32分區可能會形成linux下識別中文正常可是到windows下反而出現亂碼,推薦替換成utf8,可是dmesg提示警告,沒有關係,n多人用了這麼長時間都沒有問題

/dev/sda1 /mnt/WindowsC vfat user,utf8,umask=000 0 0


3.在終端中輸入

mount -a

你就應該能在/mnt/WindowsC下找到你的系統分區sda1內容,在/home/username/WindowsD中找到sda8的內容(其中username指用戶名)。

相關文章
相關標籤/搜索