歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> fstab配置詳解

fstab配置詳解

日期:2017/2/28 14:45:42   编辑:Linux教程

想對fstab做個總結,但是發現網上已經有很成熟的文檔了,所以這篇文章是摘自互聯網上的內容,自己做拼接,使它變得完整一些。

首先介紹一下fstab :這個文件描述系統中各種文件系統的信息。一般而言,應用程序僅讀取這個文件,而不對它進行寫操作。對它的維護是系統管理員的工作。在這個文件中,每個文件系統用一行來描述,在每一行中,用空格或TAB符號來分隔各個字段,文件中以#開頭的行是注釋信息。Fstab文件中的紀錄的排序十分重要。因為fsck,mount或umount等程序在做它們的工作時會按此順序進行。

接下來整理一下它的配置語法:
fs_spec fs_file fs_type fs_options fs_dump fs_pass 
/dev/hda1 /   ext2  defaults   1    1 

fs_spec :該字段定義希望加載的文件系統所在的設備或遠程文件系統,對於一般的本地塊設備情況來說:IDE設備一般描述為/dev/hdXN,X是IDE設備通道(a, b或者c),N代表分區號;SCSI設備一描述為/dev/sdXN。對於procfs,使用`proc'來定義。對文件系統的定義(fsspec),它描述了將被裝載的塊設備或遠程文件系統。對於通常的mount操作而言,這個字段應該包括一個將被裝載的塊設備的設備結點(通過mknod命令來創建)或指向這類結點的連接(例如/dev/cdrom或/dev/sdb),對於NFSmount操作,這個字段應該包含host:dir格式的信息,對於進程文件系統procfs,使用proc。除了顯示的使用設備名,你可以使用設備的UUID或設備的卷標簽,例如,你可以在這個字段寫成“LABAL=root”或“UUID=3e6be9de-8139-11d1-9106-a43f08d823a6”,這將使系統更具伸縮性。例如,如果你的系統添加或移除了一個SCSI硬盤,這有可以改變你的設備名,但它不會修改你的卷標簽。
fs_file: 該字段描述希望的文件系統加載的目錄點,對於swap設備,該字段為none;對於加載目錄名包含空格的情況,用40來表示空格。描述文件系統的載入點,對於交換分區(swap),這個字段定義為none,如果在載入點的路徑中包含空格符,可以用“\040”來替代空格符。
fs_type: 定義了該設備上的文件系統,一般常見的文件類型為ext2 (Linux設備的常用文件類型)、vfat(Windows系統的fat32格式)、NTFS、iso9600等.文件系統類型(fsvfstype),主要用來定義文件系統的類型。Linux系統支持大量的文件類型,包括sdfs,affs,autofs,jfs,minix,msdos, ncpfs, nfs, ntfs, proc, qnx4, reiserfs, romfs,,smbfs,sysv, tmpfs, udf, ufs, umsdos, vfat, xenix,xfs等等。如果想了解你的kernel目前支持哪些文件系統,可以查看/proc/filesystems的內容。如果這個字段定義為swap,這條紀錄將關聯到一個用於交換目的的文件或分區。如果這個字段定義為ignored,這行將被忽略。這對於顯示目前沒有使用的分區非常有用。
fs_options: 指定加載該設備的文件系統是需要使用的特定參數選項,多個參數是由逗號分隔開來。文件系統選項(fsmntops)在裝載文件系統時使用的裝載選項。多個選項之間用逗號做分隔符,這些選項列表包括了裝載類型以及對於該文件系統合適的其它裝載選項。對於非NFS系統可用的裝載選項可以參看mount命令的說明,對於nfs系統的選項可以查看關於nfs的文檔。對於所有文件系統都適用的選項有noauto(當使用mount–a命令時不載入),user(允許用戶進行裝載),owner(允許設備所有人裝載),_netdev(設備需要網絡),後兩個選項是linux系統所特有的。
對於大多數系統使用"defaults"就可以滿足需要。其他常見的選項包括:
選項              含義
ro    以只讀模式加載該文件系統
sync   不對該設備的寫操作進行緩沖處理,這可以防止在非正常關機時情況下破壞文件系統,但是卻降低了計算機速度
user   允許普通用戶加載該文件系統
quota   強制在該文件系統上進行磁盤定額限制
noauto  不再使用mount -a命令(例如系統啟動時)加載該文件系統
fs_dump: 該選項被"dump"命令使用來檢查一個文件系統應該以多快頻率進行轉儲,若不需要轉儲就設置該字段為0.文件系統頻率(fs_freq),被dump程序使用來確定哪個文件系統需要dump,如果最後一個字段沒有設置,系統將認為其值為0,而dump程序則認為此文件系統無需dump。
fs_pass: 該字段被fsck命令用來決定在啟動時需要被掃描的文件系統的順序,根文件系統"/"對應該字段的值應該為1,其他文件系統應該為2。若該文件系統無需在啟動時掃描則設置該字段為0.被fsck程序所使用來確定進行在系統重啟進行文件系統檢查時的順序,對於根系統/這個值應設為1,其它文件系統可以設為2,在同一個物理硬盤內的文件系統應該被順序檢測,而不同硬盤中的文件系統則應該同時檢測以充分利用系統的並行性。如果最後一個字段值為0或沒有設置,fsck程序裝跳過此文件系統的檢測。在linux編程中可以用getmntent過程來訪問這個文件的內容。

--------------------------------------------------------------------------------

其中fs_options參數值得一提,這個參數在mount的目標文件時nfs文件時,參數可以是:

HARD:
NFS CLIENT會不斷的嘗試與SERVER的連接(在後台,不會給出任何提示信息,在LINUX下有的版本仍然會給出一些提示),直到MOUNT
上。
SOFT:
會在前台嘗試與SERVER的連接,是默認的連接方式。當收到錯誤信息後終止mount嘗試,並給出相關信息。
例如:mount -F nfs -o hard 192.168.0.10:/nfs /nfs
rsize和wsize:
文件傳輸尺寸設定:wsize 來進行設定。這兩個參數的設定對於NFS的執行效能有較大的影響
bg:
在執行mount時如果無法順利mount上時,系統會將mount的操作轉移到後台並繼續嘗試mount,直到mount成功為止。(通常在設
定/etc/fstab文件時都應該使用bg,以避免可能的mount不上而影響啟動速度)
fg:
和bg正好相反,是默認的參數
nfsvers=n:
設定要使用的NFS版本,默認是使用2,這個選項的設定還要取決於server端是否支持NFS VER 3
mountport:
設定mount的端口
port:
根據server端export出的端口設定,例如如果server使用5555端口輸出NFS,那客戶端就需要使用這個參數進行同樣的設定
timeo=n:
設置超時時間,當數據傳輸遇到問題時,會根據這個參數嘗試進行重新傳輸。默認值是7/10妙(0.7秒)。如果網絡連接不是很穩定的話就要加大這個數值,並且推薦使用HARD MOUNT方式,同時最好也加上INTR參數,這樣你就可以終止任何掛起的文件訪問。
intr:允許通知中斷一個NFS調用。當服務器沒有應答需要放棄的時候有用處。
udp:使用udp作為nfs的傳輸協議(NFS V2只支持UDP)
tcp:使用tcp作為nfs的傳輸協議
namlen=n:設定遠程服務器所允許的最長文件名。這個值的默認是255
acregmin=n:設定最小的在文件更新之前cache時間,默認是3
acregmax=n:設定最大的在文件更新之前cache時間,默認是60
acdirmin=n:設定最小的在目錄更新之前cache時間,默認是30
acdirmax=n:設定最大的在目錄更新之前cache時間,默認是60
actimeo=n:將acregmin、acregmax、acdirmin、acdirmax設定為同一個數值,默認是沒有啟用。
retry=n:設定當網絡傳輸出現故障的時候,嘗試重新連接多少時間後不再嘗試。默認的數值是10000 minutes
noac: 關閉cache機制。
同時使用多個參數的方法:mount -t nfs -o timeo=3,udp,hard 192.168.0.30:/tmp /nfs
請注意,NFS客戶機和服務器的選項並不一定完全相同,而且有的時候會有沖突。比如說服務器以只讀的方式導出,客戶端卻以可寫的方式 mount,雖然可以成功mount上,但嘗試寫入的時候就會發生錯誤。一般服務器和客戶端配置沖突的時候,會以服務器的配置為准。

下面給出公司生產換幾個的fstab配置文件樣板:
LABEL=/ / xfs defaults 1 1
LABEL=SWAP swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/lewa/data /data ext4 defaults 0 0
/dev/lewa/web /web ext4 defaults 0 0
/dev/lewa/Hadoop_data /hadoop_data ext4 defaults 0 0
web-storage-1:/data/www/static/discuz/xwb/log /web/bbs/htdoc/xwb/log nfs rsize=8192,nfsvers=4,wsize=8192,timeo=14,intr,bg,retry=100,nofail 0 0
web-storage-1:/data/www/static/discuz/uc_server/data /web/bbs/htdoc/uc_server/data nfs rsize=8192,nfsvers=4,wsize=8192,timeo=14,intr,bg,retry=100,nofail 0 0
web-storage-1:/data/www/static/discuz/static /web/bbs/htdoc/static nfs rsize=8192,nfsvers=4,wsize=8192,timeo=14,intr,bg,retry=100,nofail 0 0
web-storage-1:/data/www/static/discuz/xwb/cache /web/bbs/htdoc/xwb/cache nfs rsize=8192,nfsvers=4,wsize=8192,timeo=14,intr,bg,retry=100,nofail 0 0
web-storage-1:/data/www/static/discuz/data /web/bbs/htdoc/data nfs rsize=8192,nfsvers=4,wsize=8192,timeo=14,intr,bg,retry=100,nofail 0 0
web-storage-1:/data/fcfiles/theme /web/theme/htdoc/theme nfs rsize=8192,nfsvers=4,wsize=8192,timeo=14,intr,bg,retry=100,nofail 0 0

多注意裡面的參數哦,很有用。

Copyright © Linux教程網 All Rights Reserved