/etc/fstab详解
From: http://blog.csdn.net/clozxy/article/details/5603222
?
fstab(/etc/fstab)是Linux下比較重要的配置文件,它包含了系統(tǒng)在啟動(dòng)時(shí)掛載文件系統(tǒng)和存儲(chǔ)設(shè)備的詳細(xì)信息。下面是我機(jī)子上的 fstab文件:
LABEL=/???????????????? /?????????????????????? ext3??? defaults??????? 1 1
LABEL=/boot1??????????? /boot?????????????????? ext3??? defaults??????? 1 2
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
LABEL=SWAP-sda11??????? swap??????????????????? swap??? defaults??????? 0 0
/dev/sda6?????????????? /mnt/winE?????????????? vfat??? defaults??????? 0 0
/dev/sda8?????????????? /mnt/winG?????????????? ntfs??? defaults??????? 0 0
可以看到這個(gè)文件有六列,下面以最后一列為例一一作解釋,這里假設(shè)你對(duì)mount命令比較熟悉:
1.??? 第1列是需要掛載的文件系統(tǒng)或存儲(chǔ)設(shè)備,這里為我Windows上的G盤,分區(qū)為/dev/sda8.
2.??? 第2列是掛載點(diǎn),我選擇為/mnt/winG.
3.??? 第3列指定文件系統(tǒng)或分區(qū)的類型,我的G盤是NTFS類型的,在Linux下表示為ntfs.
?
?
<fie sysytem>。這里用來指定你要掛載的文件系統(tǒng)的設(shè)備名稱或塊信息,也可以是遠(yuǎn)程的文件系統(tǒng)。做過嵌入式linux開發(fā)的朋友都可能知道 mount 192.168.1.56:/home/nfs /mnt/nfs/ -o nolock (可以是其他IP)命令所代表的意義。它的任務(wù)是把IP為192.168.1.56的遠(yuǎn)程主機(jī)上的/home/nfs/目錄掛載到本機(jī)的/mnt/nfs /目錄之下。如果要把它寫進(jìn)/etc/fstab文件中,file system這部分應(yīng)填寫為:/192.168.1.56:/home/nfs/。
?? 如果想把本機(jī)上的某個(gè)設(shè)備(device)掛載上來,寫法如:/dev/sda1、/dev/hda2或/dev/cdrom,其中,/dev/sda1 表示第一個(gè)串口硬盤的第一個(gè)分區(qū),也可以是第一個(gè)SCSI硬盤的第一個(gè)分區(qū),/dev/hda1表示第一個(gè)IDE硬盤的第一個(gè)分區(qū),/dev/cdrom 表示光驅(qū)。
?? 此外,還可以label(卷標(biāo))或UUID(Universally Unique Identifier全局唯一標(biāo)識(shí)符)來表示。用label表示之前,先要e2label創(chuàng)建卷標(biāo),如:e2label /dir_1 /dir_2,其意思是說用/dir_2來表示/dir_1的名稱。然后,再在/etc/fstab下按如下形式添加:LABEL=/dir_2 /dir_2 <type>?? <options> <dump> <pass>。重啟后,系統(tǒng)就會(huì)將/dir_1掛載到/dir_2目錄上。對(duì)于UUID,可以用vol_id -u /dev/sdax來獲取。比如我想掛載第一塊硬盤的第十一個(gè)分區(qū),先用命令vol_id -u /dev/sda11 來取得UUID,比如是:5dc08a62-3472-471b-9ef5-0a91e5e2c126,然后在<file system>這個(gè)域上填寫: UUID=5dc08a62-3472-471b-9ef5-0a91e5e2c126,即可表示/dev/sda11。Red Hat linux 一般會(huì)使用label,而Ubuntu linux 一般會(huì)用UUID。
?
?
?
?
?
?
?
?? File types:
?? Linux file systems: ext2, ext3, jfs, reiserfs, reiser4, xfs, swap.
?? Windows:
??? vfat = FAT 32, FAT 16
??? ntfs= NTFS
?? Note: For NTFS rw ntfs-3g
?? CD/DVD/iso: iso9660
?? Network file systems:
?? nfs: server:/shared_directory /mnt/nfs nfs <options> 0 0
?? smb: //win_box/shared_folder /mnt/samba smbfs rw,credentials=/home/user_name/winbox-credentials.txt 0 0
?? auto: The file system type (ext3, iso9660, etc) it detected automatically. Usually works. Used for removable devices (CD/DVD, Floppy drives, or USB/Flash drives) as the file system may vary on these devices.
4.??? 第4列為掛載選項(xiàng),詳細(xì)參考man mount. 下面列出一些常用的選項(xiàng):
?? auto: 系統(tǒng)自動(dòng)掛載,fstab默認(rèn)就是這個(gè)選項(xiàng)
?? ro: read-only
?? rw: read-write
?? defaults: rw, suid, dev, exec, auto, nouser, and async.
5.??? 第5列為dump選項(xiàng),設(shè)置是否讓備份程序dump備份文件系統(tǒng),0為忽略,1為備份。
6.??? 第6列為fsck選項(xiàng),告訴fsck程序以什么順序檢查文件系統(tǒng),0為忽略。
?
================================================================
1 fstab文件的作用
文件/etc/fstab存放的是系統(tǒng)中的文件系統(tǒng)信息。當(dāng)正確的設(shè)置了該文件,則可以通過mount /directoryname命令來加載一個(gè)文件系統(tǒng),每種文件系統(tǒng)都對(duì)應(yīng)一個(gè)獨(dú)立的行,每行中的字段都有空格或tab鍵分開。同時(shí)fsck、 mount、umount的等命令都利用該程序。
2. fstab文件格式
下面是/etc/fatab文件的一個(gè)示例行:
fs_spec fs_file fs_type fs_options fs_dump fs_pass
/dev/hda1 / ext2 defaults 1 1
fs_spec - 該字段定義希望加載的文件系統(tǒng)所在的設(shè)備或遠(yuǎn)程文件系統(tǒng),對(duì)于一般的本地塊設(shè)備情況來說:IDE設(shè)備一般描述為/dev/hdaXN,X是IDE設(shè)備通道 (a, b, or c),N代表分區(qū)號(hào);SCSI設(shè)備一描述為/dev/sdaXN。對(duì)于NFS情況,格式一般為:
,例如:`knuth.aeb.nl:/。對(duì)于procfs,使用`proc來定義。
fs_file - 該字段描述希望的文件系統(tǒng)加載的目錄點(diǎn),對(duì)于swap設(shè)備,該字段為none;對(duì)于加載目錄名包含空格的情況,用40來表示空格。
fs_type - 定義了該設(shè)備上的文件系統(tǒng),一般常見的文件類型為ext2 (Linux設(shè)備的常用文件類型)、vfat(Windows系統(tǒng)的fat32格式)、NTFS、iso9600等。
codepage國(guó)家語(yǔ)言代碼頁(yè)
iocharset字符集
fs_options - 指定加載該設(shè)備的文件系統(tǒng)是需要使用的特定參數(shù)選項(xiàng),多個(gè)參數(shù)是由逗號(hào)分隔開來。對(duì)于大多數(shù)系統(tǒng)使用defaults就可以滿足需要。其他常見的選項(xiàng)包括:
選項(xiàng) 含義
ro 以只讀模式加載該文件系統(tǒng)
sync 不對(duì)該設(shè)備的寫操作進(jìn)行緩沖處理,這可以防止在非正常關(guān)機(jī)時(shí)情況下破壞文件系統(tǒng),但是卻降低了計(jì)算機(jī)速度
user 允許普通用戶加載該文件系統(tǒng)
quota 強(qiáng)制在該文件系統(tǒng)上進(jìn)行磁盤定額限制
noauto 不再使用mount -a命令(例如系統(tǒng)啟動(dòng)時(shí))加載該文件系統(tǒng)
fs_dump - 該選項(xiàng)被dump命令使用來檢查一個(gè)文件系統(tǒng)應(yīng)該以多快頻率進(jìn)行轉(zhuǎn)儲(chǔ),若不需要轉(zhuǎn)儲(chǔ)就設(shè)置該字段為0
fs_pass - 該字段被fsck命令用來決定在啟動(dòng)時(shí)需要被掃描的文件系統(tǒng)的順序,根文件系統(tǒng)/對(duì)應(yīng)該字段的值應(yīng)該為1,其他文件系統(tǒng)應(yīng)該為2。若該文件系統(tǒng)無需在啟動(dòng)時(shí)掃描則設(shè)置該字段為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 0fstab中存放了與分區(qū)有關(guān)的重要信息,其中每一行為一個(gè)分區(qū)記錄,每一行又可分為六個(gè)部份,下面以/dev/hda7 / ext2 defaults 1 1為例逐個(gè)說明:
1. 第一項(xiàng)是您想要mount的儲(chǔ)存裝置的實(shí)體位置,如hdb或/dev/hda6。
2. 第二項(xiàng)就是您想要將其加入至哪個(gè)目錄位置,如/home或/,這其實(shí)就是在安裝時(shí)提示的掛入點(diǎn)。
3. 第三項(xiàng)就是所謂的local filesystem,其包含了以下格式:如ext、ext2、msdos、iso9660、nfs、swap等,或如ext2,可以參見/prco /filesystems說明。
4. 第四項(xiàng)就是您mount時(shí),所要設(shè)定的狀態(tài),如ro(只讀)或defaults(包括了其它參數(shù)如rw、suid、exec、auto、nouser、 async),可以參見「mount nfs」。
5. 第五項(xiàng)是提供DUMP功能,在系統(tǒng)DUMP時(shí)是否需要BACKUP的標(biāo)志位,其內(nèi)定值是0。
6. 第六項(xiàng)是設(shè)定此filesystem是否要在開機(jī)時(shí)做check的動(dòng)作,除了root的filesystem其必要的check為1之外,其它皆可視需要設(shè)定,內(nèi)定值是0。/etc/fstab內(nèi)容主要包括六項(xiàng):
例如:打印出中間的兩行內(nèi)容,如下
LABEL=/??? /??? ext3?? defaults???? 1???? 1
/dev/sda2?? /mnt/D/???? vfat??? defaults??? 0?? 0
第一列:設(shè)備名或者設(shè)備卷標(biāo)名,(/dev/sda10 或者 LABEL=/)
第二列:設(shè)備掛載目錄??????? (例如上面的“/”或者“/mnt/D/”)
第三列:設(shè)備文件系統(tǒng)????????? (例如上面的“ext3”或者“vfat”)
第四列:掛載參數(shù)???? (看幫助man mount)
對(duì)于已經(jīng)掛載好的設(shè)備,例如上面的/dev/sda2,現(xiàn)在要改變掛載參數(shù),這時(shí)可以不用卸載該設(shè)備,而可以使用下面的命令(沒有掛載的設(shè)備,remount 這個(gè)參數(shù)無效)
#mount /mnt/D/ -o remount,ro (改defaults為ro)
為了安全起見,可以指明其他掛載參數(shù),例如:
noexec(不允許可執(zhí)行文件可執(zhí)行,但千萬不要把根分區(qū)掛為noexec,那就無法使用系統(tǒng)了,連mount 命令都無法使用了,這時(shí)只有重新做系統(tǒng)了!
nodev(不允許掛載設(shè)備文件)
nosuid,nosgid(不允許有suid和sgid屬性)
nouser(不允許普通用戶掛載)
第五列:指明是否要備份,(0為不備份,1為要備份,一般根分區(qū)要備份)
第六列:指明自檢順序。 (0為不自檢,1或者2為要自檢,如果是根分區(qū)要設(shè)為1,其他分區(qū)只能是2)如果想開機(jī)就自動(dòng)掛載(mount)上,可以在/etc/fstab上添加如下幾行:
/dev/hda5 /mnt/d vfat exec,dev,suid,rw,umask=0,iocharset=gb2312,codepage=936 0 0
同時(shí)也解決了中文文件名的亂碼問題,我的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: 掛載點(diǎn)。例如,把/dev/hda1掛到/mnt/mywinc下。
3. type: ext3, vfat, ......就是要掛上的文件系統(tǒng)類型。
4. rules:
auto: 開機(jī)自動(dòng)掛接;
default, noauto: 開機(jī)不自動(dòng)掛接;
nouser: 只有root可掛;
ro: 只讀掛接;
rw: 可讀可寫掛接;
user: 任何用戶都可以掛接;
5. dump: 備份;0為從不備份,或顯示上次至今備份之天數(shù);
6. fsck: 啟動(dòng)時(shí)fsck檢查順序,0為不檢查, “/”永遠(yuǎn)為1;
我的就是:
/dev/hda1 /mnt/mywinc vfat default 0 0
在fstab中加載分區(qū)
mkdir /mnt/win_c
vi /etc/fstab
:::::add:::::
/dev/hda1 /mnt/win_c vfat default,pagecode=936,iocharset=cp936 0 0
總結(jié)
以上是生活随笔為你收集整理的/etc/fstab详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu下用snap7与西门子通信
- 下一篇: 修改表和约束(alter语句)