歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux服務器 >> Linux磁盤管理--fstab文件的修改

Linux磁盤管理--fstab文件的修改

日期:2017/3/2 16:42:15   编辑:Linux服務器

/etc/fstab是一個文本文件,在這個文件中,每個文件系統(包括分區或者設備)用一行來描述,在每一行中,用空格或TAB符號來分隔各個字段,文件中以*開頭的行是注釋信息。fstab文件中的紀錄的排序十分重要。因為 fsck,mount或umount等程序在做它們的工作時會按此順序進行本。

示例(sdb1為新增的硬盤):

# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/sda1 / ext3 errors=remount-ro 0 1
/dev/sda6 /home ext3 defaults 0 2
/dev/sda5 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
/dev/sdb1 /oracel ext3 defaults 0 2

第一、二列:設備和默認掛載點

第一列和第二列的內容是最簡單最直接的,它們的作用就是告訴mount命令,我想掛載什麼分區或者什麼設備,以及我所希望的掛載點在哪裡。在fstab中為某一個設備指定的掛載點是其默認掛載點,也就是當你在掛載目錄的時候沒有手工指定其他目錄的話,系統就將該設備掛載到這個目錄。大多數 Linux發行版都會為掛載點創建專門的目錄,大多數是在/mnt下。

第三列:文件系統類型

  fstab中的第三列指示了設備或者分區的文件系統類型。它支持很多種類的文件系統,我們在這裡只介紹最為常用的。如果想了解你的kernel目前支持哪些文件系統,可以查看/proc/filesystems的內容。如果這個字段定義為swap,這條紀錄將關聯到一個用於交換目的的文件或分區。如果這個字段定義為ignored,這行將被忽略。這對於顯示目前沒有使用的分區非常有用。

  ext2 和 ext3: Linux下的Ext2文件系統,是 GNU/Linux 系統中標准的文件系統,其特點為存取文件的性能極好,對於中小型的文件更顯示出優勢,這主要得利於其簇快取層的優良設計。至於Ext3文件系統,它屬於一種日志文件系統,是對ext2系統的擴展。日志式文件系統的優越性在於,它會將整個磁盤的寫入動作完整記錄在磁盤的某個區域上,以便有需要時可以回朔追蹤。由於詳細紀錄了每個細節,故當在某個過程中被中斷時,系統可以根據這些記錄直接回朔並重整被中斷的部分,而不必花時間去檢查其他的部分,故文件系統檢測不一致時,重整的工作速度相當快,幾乎不需要花時間。

  reiserfs: ReiserFS是一個非常優秀的文件系統。也是最早用於Linux的日志文件系統之一,其機制比Ext3要先進得多,風雷小弟一直使用的就是它,很多發行版現在也把它作為默認文件系統了。可惜其作者前段時間出事了……具體情況就不說了,也不知道下一代reiserfs4還能不能出來,因為ext4都有了。

  swap: Swap,即交換區,把它想象成虛擬內存就行了。

  vfat 和 ntfs:一看就知道是Windows分區格式了,呵呵。98,me等系統都是使用的vfat,也就是最流行的fat32格式,而NT系列則多使用 NTFS,當然也不是固定的,因此2000或者XP系統要具體情況具體分析。當初Linux對NTFS的寫入支持不好,所以大多數資料都建議用戶使用 vfat格式,但是現在支持已經很好了,即使不重新編譯內核,也可以通過ntfs-3g來進行寫入支持(具體方法請參考這篇文章),因此不用太在意這個了。

  auto:當然,這不是一個文件系統類型。auto只是表示,文件系統的類型將被自動檢測。在上面的示例中,你會發現軟驅和光驅的文件系統類型都是auto,為什麼呢?因為它們的文件系統類型隨時都可能改變,比如軟驅,優盤這種設備,可能今天是vfat格式,明天你就把它格式化成了ntfs,因此,最明智的做法就是告訴系統,我沒法確定這東西的當前類型,還是你自己檢測吧。

  udf: 由於刻錄光驅越來越流行,現在很多發行版自帶的fstab中,光驅的文件格式類型是UDF,UDF是Universal Disc Format的縮寫,與ISO 9660格式相容。它采用標准的封裝寫入技術(PW,Packet Writing)將CD-R/CD-RW當作硬盤使用,用戶可以在光盤上修改和刪除文件。利用UDF格式進行刻錄時,刻錄軟件將數據打包,並在內存中臨時建立一個特殊文件目錄表,同時接管系統對光盤的訪問。

  iso9660: 很多光驅也使用的這個選項。ISO9660是一種描述適合CD盤片的電腦文件結構的國際標准。采用此標准的盤片可以在不同的操作系統上使用,如MAC和Windows
第四列:掛載選項

  fstab中的第四列表示設備或者分區所需要的掛載選項。這一列也是fstab中最復雜最容易出錯的一列,當然,只要你能知道一些最常用的選項是什麼意思,就可以讓你從頭疼中解脫出來。如果要把可用的選項一項一項介紹……恩,我估計我會寫到明天,所以,我還是只是分析最常用的一些選項,如果你想知道更多的東西,還是求助於man吧。

  auto 和 noauto: 這是控制設備是否自動掛載的選項。auto是默認選擇的選項,這樣,設備會在啟動或者你使用mount -a命令時按照fstab的內容自動掛載。如果你不希望這樣,就使用noauto選項,如果這樣的話,你就只能明確地通過手工來掛載設備。

  user 和 nouser:這是一個非常有用的選項,user選項允許普通用戶也能掛載設備,而nouser則只允許root用戶掛載。nouser是默認選項,這也是讓很多 Linux新手頭疼的東西,因為他們發現沒有辦法正常掛載光驅,Windows分區等。如果你作為普通身份用戶遇到類似問題,或者別的其他問題,就請把 user屬性增加到fstab中。

  exec 和 noexec: exec允許你執行對應分區中的可執行二進制程序,同理,noexec的作用剛好相反。如果你擁有一個分區,分區上有一些可執行程序,而恰好你又不願意,或者不能在你的系統中執行他們,就可以使用noexec屬性。這種情況多發生於掛載Windows分區時。exec是默認選項,理由很簡單,如果 noexec變成了你/根分區的默認選項的話……

  ro: 以只讀來掛載文件系統。

  rw: 以可讀可寫的屬性來掛載系統。

  sync 和 async:對於該文件系統的輸入輸出應該以什麼方式完成。sync的意思就是同步完成,通俗點講,就是當你拷貝一個東西到設備或者分區中時,所有的寫入變化將在你輸入cp命令後立即生效,這個東西應該立馬就開始往設備或者分區裡面拷貝了。而如果是async,也就是輸入輸出異步完成的話,當你拷貝一個東西到設備或者分區中時,可能在你敲擊cp命令後很久,實際的寫入操作才會執行,換句話說,就是進行了緩沖處理。

  有時候這種機制蠻不錯的,因為sync會影響你系統的運行速度,但是這也會帶來一些問題。想一想,當你希望將一個文件拷貝到u盤上時,你執行了 cp 命令,卻忘記執行umount命令(它會強行將緩沖區內容寫入),那麼你拷貝的文件實際上並沒有在u盤上面。如果你是使用的mv命令,而你又很快將u盤拔出……恭喜你,文件會從這個星球上消失的。因此,雖然async是默認屬性,但是對於u盤,移動硬盤這種可移動存儲設備,最好還是讓他們使用sync選項。

  defaults: 所有選項全部使用默認配置,包括rw, suid, dev, exec, auto, nouser, 和 async.

  一般用戶沒有特殊需求,直接使用defaults就可以了。看完介紹,我們再回過頭去看看前面的示例內容,以光驅為例,主要關注掛載選項這裡,可以看到,光驅和其他分區設備的不同是ro,因為普通光驅是只讀的。而exec則讓你可以從光驅上直接執行某些程序。

  第五、六列:dump和fsck選項

  fstab的第五列是表示dump選項,dump工具通過這個選項位置上的數字來決定文件系統是否需要備份。如果是0,dump就會被忽略,事實上,大多數的dump設置都是0.而第六列是fsck選項,fsck命令通過檢測該字段來決定文件系統通過什麼順序來掃描檢查,根文件系統/對應該字段的值應該為1,其他文件系統應該為2.若文件系統無需在啟動時掃描檢查,則設置該字段為0

Copyright © Linux教程網 All Rights Reserved