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
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
Linux fstab自動掛載分區教程
?
? ? 某些時候當Linux系統下劃分了新的分區后,需要將這些分區設置為開機自動掛載,否則,Linux是無法使用新建的分區的。 /etc/fstab 文件負責配置Linux開機時自動掛載的分區。
Windows的文件結構是多個并列的樹狀結構,最頂部的是不同的磁盤(分區),如:C,D,E,F等。Linux的文件結構是單個的樹狀結構。最頂部的為根目錄,即/。在根目錄下,分為多個子目錄,包括/bin、/boot、/dev、/etc、/home、/lib、/media、/mnt、/opt、/proc、/root、/sbin、/tmp、/usr和/var等。
磁盤Linux分區都必須掛載到目錄樹中的某個具體的目錄上才能進行讀寫操作,而fstab正是負責這一配置。顯然,根目錄是所有Linux的文件和目錄所在的地方,需要掛載上一個磁盤分區。上面還提到,Linux分區交換也需要獨立使用一個分區,因此,安裝一個Linux至少需要兩個分區。(事實上,只使用一個分區安裝Linux也是可能的,而且,如果電腦的物理內存足夠大,交換分區并不是必須的)
本文將以某一典型的debian系統為例。打開 /etc/fstab文件
1[root@www ~]# vi /etc/fstab
默認情況下,fstab中已經有了當前的分區配置,內容可能類似:
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/hda1 / ext3 errors=remount-ro 0 1
/swapfile swap swap defaults 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
由上面的內容可以看出,系統的 /dev/hda1 分區被掛載在根目錄,文件系統是ext3。此外,還有proc、swap等特殊的“分區”,與 /dev/hdc 被作為光驅掛載在了 /media/cdrom0
因此,如果希望將新分區 /dev/hda5 掛載在 /home/new 目錄下,則只需在fstab文件中加入一行:
/dev/hda5 /home/new ext3 default 0 1
即可。
第一列可以是實際分區名,也可以是實際分區的卷標(Lable)。
如果磁盤是SATA接口,且有多個磁盤,則每個磁盤被標記為 /dev/hda、 /dev/hdb、 /dev/hdc等以此類推;而每個磁盤的分區被標記為 /dev/hda1、 /dev/hda2等。
如果磁盤是SCSI類型,則多個磁盤會被分別標記為 /dev/sda、/dev/sdb等等。分區同理。
如果使用標簽來表示,則格式如:
1LABLE=/
第二列是掛載點。
掛載點必須為當前已經存在的目錄,為了兼容起見,最好在創建需要掛載的目標目錄后,將其權限設置為777,以開放所有權限。
第三列為此分區的文件系統類型。
Linux可以使用ext2、ext3等類型,此字段須與分區格式化時使用的類型相同。也可以使用 auto 這一特殊的語法,使系統自動偵測目標分區的分區類型。auto通常用于可移動設備的掛載。
第四列是掛載的選項,用于設置掛載的參數。
常見參數如下:
auto: 系統自動掛載,fstab默認就是這個選項
defaults: rw, suid, dev, exec, auto, nouser, and async.
noauto 開機不自動掛載
nouser 只有超級用戶可以掛載
ro 按只讀權限掛載
rw 按可讀可寫權限掛載
user 任何用戶都可以掛載
請注意光驅和軟驅只有在裝有介質時才可以進行掛載,因此它是noauto
第五列是dump備份設置。
當其值設置為1時,將允許dump備份程序備份;設置為0時,忽略備份操作;
第六列是fsck磁盤檢查設置。
其值是一個順序。當其值為0時,永遠不檢查;而 /根目錄分區永遠都為1。其它分區從2開始,數字越小越先檢查,如果兩個分區的數字相同,則同時檢查。
當修改完此文件并保存后,重啟服務器生效。
etc配置文件解讀——fstab?
分類: 嵌入式etc配置文件解讀2012-07-17 11:40 1269人閱讀 評論(0) 收藏 舉報
linux內核redhatubuntu工具userc
PC主機:Ubuntu 和 redhat 9.0
目標板:TQ2440開發板 cpu:s3c2440 linux內核:2.6.30
下文中所輸入的命令就是在開發板中執行。
1. fstab的作用
? ? fstab包含了需要掛載的設備,相應的掛載點,以及屬性等。在兩種情況下,fstab中的內容將被讀取。
? ? 1) 當執行mount -a的時候,fstab配置文件中的所有條目將被一一執行。
? ? 2) fstab配置文件中的內容將作為默認的配置,也就是說當mount命令只知道掛載設備或者是掛載點時,它將搜索fstab文件。,比如,執行mount? /tmpfs的時候,此時我并沒有給出需要掛載的設備,僅給出了掛載點,但是mount命令會首先查詢fstab,如果查找到/tmpfs,將使用該默認配置進行掛載。請看例子:
[cpp] view plaincopy
- [root@yj423 /root]#cat /etc/fstab | grep /tmp? ?
- tmpfs /tmp tmpfs defaults 0 0? ?
- [root@yj423 /root]#mount /tmp? ?
- [root@yj423 /root]#mount | grep /tmp? ?
- tmpfs on /tmp type tmpfs (rw,relatime) ?
但是如果我們把fstab中/tmp所在的該行刪除,則會
[cpp] view plaincopy
- <span style="font-size:12px;">[root@yj423 /root]#mount /tmp ?
- mount: can't find /tmp in /etc/fstab</span> ?
2. fstab語法
首先,先來看下完整的fstab內容
[cpp] view plaincopy
- [root@yj423 /root]#cat /etc/fstab? ?
- <filesystem> ? <mountpoing> <type>? <options> <dump> <pass> ?
- proc? ? ? ? ? ? /proc? ? ? ? proc? ? defaults? ? 0 ? 0 ?
- tmpfs ? ? ? ? ? /tmp ? ? ? ? tmpfs ? defaults? ? 0 ? 0 ?
- sysfs ? ? ? ? ? /sys ? ? ? ? sysfs ? defaults? ? 0 ? 0 ?
- tmpfs ? ? ? ? ? /dev ? ? ? ? tmpfs ? defaults? ? 0 ? 0 ?
- var ? ? ? ? ? ? /dev ? ? ? ? tmpfs ? defaults? ? 0 ? 0 ?
- ramfs ? ? ? ? ? /dev ? ? ? ? ramfs ? defaults? ? 0 ? 0 ?
第一列filesystem為mount命令所掛載的設備。
第二列mount point為mount命令的掛載點。掛載點必須是一個已存在的目錄。
第三列type為文件系統的類型。
第四列option為mount命令的選項。
這里的defaults表示:rw, suid, dev, exec, auto, nouser, and async。
rw表示文件系統可以讀寫。
suid表示當前用戶權限和創建該文件的用戶權限一樣。
dev表示識別文件系統中的字符設備和塊設備。與其對應的是nodev。
exec表示可以在設備上運行二進制文件。與其對應的是noexec。
auto表示執行mount -a是會執行該條目。與其對應的是noauto。
nosuer表示只有root才能掛載該設備。與其對應的是user。
async表示對該設備的寫入操作不會立刻寫入設備,而在隨后的某個時刻寫入。與其對應的是sync。
第五列dump表示是否使用dump備份該文件系統,如果是0,dump將忽略該文件系統。大多數情況下該列都為0.
第六列pass表示fsck工具檢查文件系統的順序。0表示不使用fsck。
?Linux下/etc/fstab文件詳解 2010-03-01 11:01:47
分類: LINUX
/etc/fstab是用來存放文件系統的靜態信息的文件。位于/etc/目錄下,可以用命令less /etc/fstab 來查看,如果要修改的話,則用命令 vi /etc/fstab 來修改。
?? ? ? 當系統啟動的時候,系統會自動地從這個文件讀取信息,并且會自動將此文件中指定的文件系統掛載到指定的目錄。下面我來介紹如何在此文件下填寫信息。
?? 在這個文件下,我們要關注的是它的六個域,分別為:、、 、、、。下面將詳細介紹這六個域的詳細意義。
? ? ? 1、。這里用來指定你要掛載的文件系統的設備名稱或塊信息,也可以是遠程的文件系統。做過嵌入式linux開發的朋友都可能知道 mount 192.168.1.56:/home/nfs /mnt/nfs/ -o nolock (可以是其他IP)命令所代表的意義。它的任務是把IP為192.168.1.56的遠程主機上的/home/nfs/目錄掛載到本機的/mnt/nfs /目錄之下。如果要把它寫進/etc/fstab文件中,file system這部分應填寫為:/192.168.1.56:/home/nfs/。
?? 如果想把本機上的某個設備(device)掛載上來,寫法如:/dev/sda1、/dev/hda2或/dev/cdrom,其中,/dev/sda1 表示第一個串口硬盤的第一個分區,也可以是第一個SCSI硬盤的第一個分區,/dev/hda1表示第一個IDE硬盤的第一個分區,/dev/cdrom 表示光驅。
?? 此外,還可以label(卷標)或UUID(Universally Unique Identifier全局唯一標識符)來表示。用label表示之前,先要e2label創建卷標,如:e2label /dir_1 /dir_2,其意思是說用/dir_2來表示/dir_1的名稱。然后,再在/etc/fstab下添加:LABEL=/dir_2 /dir_2? ? 。重啟后,系統就會將/dir_1掛載到/dir_2目錄上。對于UUID,可以用vol_id -u /dev/sdax來獲取。比如我想掛載第一塊硬盤的第一個分區,先用命令vol_id -u /dev/sda11 來取得UUID,比如是:5dc08a62-3472-471b-9ef5-0a91e5e2c126,然后在這個域上填寫: UUID=5dc08a62-3472-471b-9ef5-0a91e5e2c126,即可表示/dev/sda11。Red Hat linux 一般會使用label,而Ubuntu linux 一般會用UUID。
?? 2、。掛載點,也就是自己找一個或創建一個dir(目錄),然后把文件系統掛到這個目錄上,然后就可以從這個目錄中訪問要掛載文件系統。對于swap分區,這個域應該填寫:none,表示沒有掛載點。
?? ? ? 3、。這里用來指定文件系統的類型。下面的文件系統都是目前Linux所能支持的:adfs、befs、cifs、ext3、 ext2、ext、iso9660、kafs、minix、msdos、vfat、umsdos、proc、reiserfs、swap、 squashfs、nfs、hpfs、ncpfs、ntfs、affs、ufs。
?? 4、。這里用來填寫設置選項,各個選項用逗號隔開。由于選項非常多,而這里篇幅有限,所以不再作詳細介紹,如需了解,請用 命令 man mount 來查看。但在這里有個非常重要的關鍵字需要了解一下:defaults,它代表包含了選項rw,suid,dev,exec,auto,nouser和 async。
?? 5、。此處為1的話,表示要將整個里的內容備份;為0的話,表示不備份。現在很少用到dump這個工具,在這里一般選0。
?? 6、。這里用來指定如何使用fsck來檢查硬盤。如果這里填0,則不檢查;掛載點為 / 的(即根分區),必須在這里填寫1,其他的都不能填寫1。如果有分區填寫大于1的話,則在檢查完根分區后,接著按填寫的數字從小到大依次檢查下去。同數字 的同時檢查。比如第一和第二個分區填寫2,第三和第四個分區填寫3,則系統在檢查完根分區后,接著同時檢查第一和第二個分區,然后再同時檢查第三和第四個 分區。