fstab檔案詳解
註:SLED的iocharset=cp936為iocharset=utf8
1 fstab檔案的作用
檔案/etc/fstab存放的是系統中的檔案系統資訊。當正確的設定了該檔案,則可以通過mount /directoryname命令來載入一個檔案系統,每種檔案系統都對應一個獨立的行,每行中的欄位都有空格或tab鍵分開。同時fsck、mount、umount的等命令都利用該程式。
2. fstab檔案格式
下面是/etc/fatab檔案的一個樣本行:
fs_spec fs_file fs_type fs_options fs_dump fs_pass
/dev/hda1 / ext2 defaults 1 1
fs_spec - 該欄位定義希望載入的檔案系統所在的裝置或遠程檔案系統,對於一般的本地塊裝置情況來說:IDE裝置一般描述為/dev/hdaXN,X是IDE裝置通道(a, b, or c),N代表分區號;SCSI裝置一描述為/dev/sdaXN。對於NFS情況,格式一般為:
,例如:`knuth.aeb.nl:/。對於procfs,使用`proc來定義。
fs_file - 該欄位描述希望的檔案系統載入的目錄點,對於swap裝置,該欄位為none;對於載入目錄名包含空格的情況,用40來表示空格。
fs_type - 定義了該裝置上的檔案系統,一般常見的檔案類型為ext2 (Linux裝置的熱門檔案類型)、vfat(Windows系統的fat32格式)、NTFS、iso9600等。
codepage國家語言字碼頁
iocharset字元集
fs_options - 指定載入該裝置的檔案系統是需要使用的特定參數選項,多個參數是由逗號分隔開來。對於大多數系統使用defaults就可以滿足需要。其他常見的選項包括:
選項 含義
ro 以唯讀模式載入該檔案系統
sync 不對該裝置的寫操作進行緩衝處理,這可以防止在非順利關機時情況下破壞檔案系統,但是卻降低了電腦速度
user 允許普通使用者載入該檔案系統
quota 強制在該檔案系統上進行磁碟定額限制
noauto 不再使用mount -a命令(例如系統啟動時)載入該檔案系統
fs_dump - 該選項被dump命令使用來檢查一個檔案系統應該以多快頻率進行轉儲,若不需要轉儲就設定該欄位為0
fs_pass - 該欄位被fsck命令用來決定在啟動時需要被掃描的檔案系統的順序,根檔案系統/對應該欄位的值應該為1,其他檔案系統應該為2。若該檔案系統無需在啟動時掃描則設定該欄位為0
3. 樣本檔案
# /etc/fstab
/dev/hda8 swap swap defaults 0 0
/dev/hda9 / ext2 defaults 1 1
/dev/hda6 /wine vfat defaults,codepage=936,iocharset=cp936 0 0
/dev/hda7 /winf vfat defaults,codepage=936,iocharset=cp936 0 0
/dev/hdb /cdrom iso9660 noauto,user 0 0
none /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0 fstab中存放了與分區有關的重要訊息,其中每一行為一個分區記錄,每一行又可分為六個部份,下面以/dev/hda7 / ext2 defaults 1 1為例逐個說明:
1. 第一項是您想要mount的儲存裝置的實體位置,如hdb或/dev/hda6。
2. 第二項就是您想要將其加入至哪個目錄位置,如/home或/,這其實就是在安裝時提示的掛入點。
3. 第三項就是所謂的local filesystem,其包含了以下格式:如ext、ext2、msdos、iso9660、nfs、swap等,或如ext2,可以參見/prco/filesystems說明。
4. 第四項就是您mount時,所要設定的狀態,如ro(唯讀)或defaults(包括了其它參數如rw、suid、exec、auto、nouser、async),可以參見「mount nfs」。
5. 第五項是提供DUMP功能,在系統DUMP時是否需要BACKUP的標誌位,其內定值是0。
6. 第六項是設定此filesystem是否要在開機時做check的動作,除了root的filesystem其必要的check為1之外,其它皆可視需要設定,內定值是0。
/etc/fstab內容主要包括六項:
例如:列印出中間的兩行內容,如下
LABEL=/ / ext3 defaults 1 1
/dev/sda2 /mnt/D/ vfat defaults 0 0
第一列:裝置名稱或者裝置卷標名,(/dev/sda10 或者 LABEL=/)
第二列:裝置掛載目錄 (例如上面的“/”或者“/mnt/D/”)
第三列:裝置檔案系統 (例如上面的“ext3”或者“vfat”)
第四列:掛載參數 (看協助man mount)
對於已經掛載好的裝置,例如上面的/dev/sda2,現在要改變掛載參數,這時可以不用卸載該裝置,而可以使用下面的命令(沒有掛載的裝置,remount 這個參數無效)
#mount /mnt/D/ -o remount,ro (改defaults為ro)
為了安全起見,可以指明其他掛載參數,例如:
noexec(不允許可執行檔可執行,但千萬不要把根分區掛為noexec,那就無法使用系統了,連mount 命令都無法使用了,這時只有重新做系統了!
nodev(不允許掛載裝置檔案)
nosuid,nosgid(不允許有suid和sgid屬性)
nouser(不允許普通使用者掛載)
第五列:指明是否要備份,(0為不備份,1為要備份,一般根分區要備份)
第六列:指明自檢順序。 (0為不自檢,1或者2為要自檢,如果是根分區要設為1,其他分區只能是2)
如果想開機就自動掛載(mount)上,可以在/etc/fstab上添加如下幾行:
/dev/hda5 /mnt/d vfat exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0 0
同時也解決了中文檔案名稱的亂碼問題,我的fstab檔案如下,僅供參考:
LABEL=/12 / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/hda4 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
/dev/hda1 /mnt/c vfat exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0 0
/dev/hda5 /mnt/d vfat exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0 0
/dev/hda6 /mnt/e vfat exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0 0
/dev/hda7 /mnt/f vfat exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0 0
/dev/hda8 /mnt/g vfat exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0 0
fstab解讀
從做到右:
/dev/device mount-point type rules dump fsck
1. /dev/device: 不用說了吧?例如,/dev/hda1 為M$-Win9x下的c:盤。
2. mount-point: 掛載點。例如,把/dev/hda1掛到/mnt/mywinc下。
3. type: ext3, vfat, ......就是要掛上的檔案系統類型。
4. rules:
auto: 開機自動掛接;
default, noauto: 開機不自動掛接;
nouser: 只有root可掛;
ro: 唯讀掛接;
rw: 可讀可寫掛接;
user: 任何使用者都可以掛接;
5. dump: 備份;0為從不備份,或顯示上次至今備份之天數;
6. fsck: 啟動時fsck檢查順序,0為不檢查, “/”永遠為1;
我的就是:
/dev/hda1 /mnt/mywinc vfat default 0 0
在fstab中載入分區
mkdir /mnt/win_c
vi /etc/fstab
:::::add:::::
/dev/hda1 /mnt/win_c vfat default,pagecode=936,iocharset=cp936 0 0
/etc/fastab釋疑
1. fstab檔案的作用
文 件/etc/fstab存放的是系統中的檔案系統資訊。當正確的設定了該檔案,則可以通過"mount /directoryname"命令來載入一個檔案系統,每種檔案系統都對應一個獨立的行,每行中的欄位都有空格或tab鍵分開。同時fsck、 mount、umount的等命令都利用該程式。
2. fstab檔案格式
下面是/etc/fatab檔案的一個樣本行:
fs_spec fs_file fs_type fs_options fs_dump fs_pass
/dev/hda1 / ext2 defaults 1 1
fs_spec - 該欄位定義希望載入的檔案系統所在的裝置或遠程檔案系統,對於一般的本地塊裝置情況來說:IDE裝置一般描述為/dev/hdaXN,X是IDE裝置通道 (a, b, or c),N代表分區號;SCSI裝置一描述為/dev/sdaXN。對於NFS情況,格式一般為<host>:<dir>,例如: `knuth.aeb.nl:/'。對於procfs,使用`proc'來定義。
fs_file - 該欄位描述希望的檔案系統載入的目錄點,對於swap裝置,該欄位為none;對於載入目錄名包含空格的情況,用40來表示空格。
fs_type - 定義了該裝置上的檔案系統,一般常見的檔案類型為ext2 (linux裝置的熱門檔案類型)、vfat(Windows系統的fat32格式)、NTFS、iso9600等。
fs_options - 指定載入該裝置的檔案系統是需要使用的特定參數選項,多個參數是由逗號分隔開來。對於大多數系統使用"defaults"就可以滿足需要。其他常見的選項包括:
選項 含義
ro 以唯讀模式載入該檔案系統
sync 不對該裝置的寫操作進行緩衝處理,這可以防止在非順利關機時情況下破壞檔案系統,但是卻降低了電腦速度
user 允許普通使用者載入該檔案系統
quota 強制在該檔案系統上進行磁碟定額限制
noauto 不再使用mount -a命令(例如系統啟動時)載入該檔案系統
fs_dump - 該選項被"dump"命令使用來檢查一個檔案系統應該以多快頻率進行轉儲,若不需要轉儲就設定該欄位為0
fs_pass - 該欄位被fsck命令用來決定在啟動時需要被掃描的檔案系統的順序,根檔案系統"/"對應該欄位的值應該為1,其他檔案系統應該為2。若該檔案系統無需在啟動時掃描則設定該欄位為0
3. 樣本檔案
# /etc/fstab
/dev/hda9 swap swap defaults 0 0
/dev/hda1 / ext2 defaults 1 1
/dev/hda5 /home ext2 defaults 1 1
/dev/hda6 /usr ext2 defaults 1 1
/dev/hda7 /usr/local ext2 defaults 1 1
/dev/hda8 /var ext2 defaults 1 1
/dev/hdb /cdrom iso9660 noauto,user 0 0
none /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0