轉自: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文件: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的用法進行一個詳細的瞭解。一個典型的entry有下面的fields (fields用空格或tab分開):編輯器
<file system><dir><type><options><dump><pass></pass></dump></options></type></dir></file>
它能使你所掛載的設備在開機時自動加載、使中文顯示不出現亂碼、限制對掛載分區讀寫權限。它是與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.
iocharset= 在=號後面加入你的本地編碼,彷佛在這個設備(分區)中作文件IO的時候就會自動作編 碼的格式轉換。 例如:你的某個分區是編碼是utf8,而設備中文件的編碼是gb2312,當是複製你設備中的文件到你的這 個分區時,它將自動作編碼轉換。 (不知道個人理解對不對,可是好像用下面的nls就能夠實現轉換。)
nls= 在=號後面加入你的本地編碼,你的中文就不會出現亂碼。
umask= 這是關於讀寫權限的,好像比下面的ro,rw選項更管用!!! 例如:umask=000或0222,使得掛載時option中有default,普通用戶仍然能讀寫掛載設備中的東西。 請你們補充!!! ro 掛載爲只讀權限 rw 掛載爲讀寫權限
exec 是一個默認設置項,它使在那個分區中的可執行的二進制文件可以執行。 noexec 二進制文件不容許執行。千萬不要在你的root分區中用這個選項!!!
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.
注意: 除了直接用設備(分區)名字,你也能夠用UUID或卷名。格式 LABEL=性能
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指用戶名)。