<a href="http://blog.csdn.net/richerg85/article/details/17917129#" target="_blank"></a>
/etc/fstab是用來存放檔案系統的靜态資訊的檔案。位于/etc/目錄下,可以用指令less /etc/fstab 來檢視,如果要修改的話,則用指令 vi /etc/fstab 來修改。
當系統啟動的時候,系統會自動地從這個檔案讀取資訊,并且會自動将此檔案中指定的檔案系統挂載到指定的目錄。下面我來介紹如何在此檔案下填寫資訊。
一個簡單的 <code>/etc/fstab</code>,使用核心名稱辨別磁盤:
<code>/etc/fstab</code> 檔案包含了如下字段,通過空格或 Tab 分隔:
<file systems> - 要挂載的分區或儲存設備.
<dir> - <file systems>的挂載位置。
<type> - 要挂載裝置或是分區的檔案系統類型,支援許多種不同的檔案系統:<code>ext2</code>,<code>ext3</code>, <code>ext4</code>, <code>reiserfs</code>,<code>xfs</code>, <code>jfs</code>, <code>smbfs</code>,<code>iso9660</code>, <code>vfat</code>, <code>ntfs</code>,<code>swap</code> 及 <code>auto</code>。 設定成<code>auto</code>類型,mount 指令會猜測使用的檔案系統類型,對 CDROM 和 DVD 等移動裝置是非常有用的。
<options> - 挂載時使用的參數,注意有些mount 參數是特定檔案系統才有的。一些比較常用的參數有:
<code>auto</code> - 在啟動時或鍵入了<code>mount -a</code> 指令時自動挂載。
<code>noauto</code> - 隻在你的指令下被挂載。
<code>exec</code> - 允許執行此分區的二進制檔案。
<code>noexec</code> - 不允許執行此檔案系統上的二進制檔案。
<code>ro</code> - 以隻讀模式挂載檔案系統。
<code>rw</code> - 以讀寫模式挂載檔案系統。
<code>user</code> - 允許任意使用者挂載此檔案系統,若無顯示定義,隐含啟用<code>noexec</code>, <code>nosuid</code>, <code>nodev</code> 參數。
<code>users</code> - 允許所有 users 組中的使用者挂載檔案系統.
<code>nouser</code> - 隻能被 root 挂載。
<code>owner</code> - 允許裝置所有者挂載.
<code>sync</code> - I/O 同步進行。
<code>async</code> - I/O 異步進行。
<code>dev</code> - 解析檔案系統上的塊特殊裝置。
<code>nodev</code> - 不解析檔案系統上的塊特殊裝置。
<code>suid</code> - 允許 suid 操作和設定 sgid 位。這一參數通常用于一些特殊任務,使一般使用者運作程式時臨時提升權限。
<code>nosuid</code> - 禁止 suid 操作和設定 sgid 位。
<code>noatime</code> - 不更新檔案系統上 inode 通路記錄,可以提升性能(參見 atime 參數)。
<code>nodiratime</code> - 不更新檔案系統上的目錄 inode 通路記錄,可以提升性能(參見 atime 參數)。
<code>relatime</code> - 實時更新 inode access 記錄。隻有在記錄中的通路時間早于目前通路才會被更新。(與 noatime 相似,但不會打斷如 mutt 或其它程式探測檔案在上次通路後是否被修改的程序。),可以提升性能(參見 atime 參數)。
<code>flush</code> - <code>vfat</code> 的選項,更頻繁的重新整理資料,複制對話框或進度條在全部資料都寫入後才消失。
<code>defaults</code> - 使用檔案系統的預設挂載參數,例如<code>ext4</code> 的預設參數為:<code>rw</code>,<code>suid</code>, <code>dev</code>, <code>exec</code>, <code>auto</code>, <code>nouser</code>,<code>async</code>.
<dump> dump 工具通過它決定何時作備份. dump 會檢查其内容,并用數字來決定是否對這個檔案系統進行備份。 允許的數字是 0 和 1 。0 表示忽略, 1 則進行備份。大部分的使用者是沒有安裝 dump 的 ,對他們而言 <dump> 應設為 0。
<pass> fsck 讀取 <pass> 的數值來決定需要檢查的檔案系統的檢查順序。允許的數字是0, 1, 和2。 根目錄應當獲得最高的優先權 1, 其它所有需要被檢查的裝置設定為 2. 0 表示裝置不會被 fsck 所檢查。
在 <code>/etc/fstab</code>配置檔案中你可以以三種不同的方法表示檔案系統:核心名稱、UUID 或者 label。使用 UUID 或是 label 的好處在于它們與磁盤順序無關。如果你在 BIOS 中改變了你的儲存設備順序,或是重新拔插了儲存設備,或是因為一些 BIOS 可能會随機地改變儲存設備的順序,那麼用 UUID 或是 label 來表示将更有效。參見 持久化塊裝置名稱 。
要顯示分區的基本資訊請運作:
你可以使用 <code>fdisk -l</code> 來獲得核心名稱,字首是<code>dev</code>.
注意: 使用這一方法,每一個标簽必須是唯一的.
要顯示所有裝置的标簽,可以使用 <code>lsblk -f</code> 指令。在<code>/etc/fstab</code> 中使用 <code>LABEL=</code> 作為裝置名的開頭 :
所有分區和裝置都有唯一的 UUID。它們由檔案系統生成工具 (<code>mkfs.*</code>) 在建立檔案系統時生成。
<code>lsblk -f</code> 指令将顯示所有裝置的 UUID 值。<code>/etc/fstab</code> 中使用<code>UUID=</code> 字首:
如果 <code>/home</code> 分區較大,可以讓不依賴<code>/home</code> 分區的服務先啟動。把下面的參數添加到<code>/etc/fstab</code> 檔案中 <code>/home</code> 項目的參數部分即可:
這樣 <code>/home</code> 分區隻有需要通路時才會被挂載。核心會緩存所有的檔案操作,直到<code>/home</code> 分區準備完成。
注意: 這樣做會使 <code>/home</code> 的檔案系統類型被識别為 <code>autofs</code>,造成 mlocate 查詢時忽略該目錄。實際加速效果因配置而異,是以請自己權衡是否需要。
挂載遠端檔案系統也是同理。如果你僅想在需要的時候才挂載,也可以添加 <code>noauto,x-systemd.automount</code> 參數。另外,可以設定 <code>x-systemd.device-timeout=#</code> 參數,設定逾時時間,以防止網絡資源不能通路的時候浪費時間。
如果你的加密檔案系統需要密鑰,則需要添加 <code>noauto</code> 參數到 <code>/etc/crypttab</code> 檔案中的對應位置。systemd 開機的時候就不會打開這個加密裝置,會一直等待到裝置被通路時再使用密鑰檔案挂載。比如在使用加密RAID裝置的時候可以節省一定的時間,因為 systemd 不必等到裝置可用後才能通路。例如:
如果交換分區沒有 UUID,可以手動加入。如果使用 <code>lsblk -f</code> 指令沒有列出交換分區的 UUID 就說明發生了這種情況。下面是為交換分區指定 UUID 的步驟:
确定交換分區:
禁用交換分區:
用新 UUID 重新建立交換分區:
激活交換分區:
如果挂載的路徑中有空格,可以使用 "\040" 轉義字元來表示空格(以三位八進制數來進行表示)
.....</nowiki>}}
外部裝置在插入時挂載,在未插入時忽略。這需要 <code>nofail</code> 選項,可以在啟動時若裝置不存在直接忽略它而不報錯.
使用 <code>noatime</code> 選項阻止了讀檔案時的寫操作。大部分應用程式都能很好工作。隻有少數程式如 Mutt 需要這些資訊。Mutt 的使用者應該使用<code>relatime</code> 選項。使用 <code>relatime</code> 選項後,隻有檔案被修改時才會産生檔案通路時間寫操作。<code>nodiratime</code> 選項僅對目錄禁用了檔案通路時間。<code>relatime</code> 是比較好的折衷,Mutt 等程式還能工作,但是仍然能夠通過減少通路時間更新提升系統性能。
注意: <code>noatime</code> 已經包含了<code>nodiratime</code>。不需要同時指定。
tmpfs 是一個臨時檔案系統,駐留于你的交換分區或是記憶體中(取決于你的使用情況)。使用它可以提高檔案通路速度,并能保證重新開機時會自動清除這些檔案。
經常使用 tmpfs 的目錄有 /tmp, /var/lock and /var/run. 不要将之使用于 /var/tmp, 因為這一目錄中的臨時檔案在重新開機過程中需要被保留。使用 tmpfs <code>/run</code> 目錄,<code>/var/run</code> 和<code>/var/lock</code> 是為了相容老版本建立的連結。預設<code>/etc/fstab</code>中的的<code>/tmp</code>也是 tmpfs.
預設情況下, tmpfs 分區被設定為你總的記憶體的一半,當然你可以自由設定這一值。注意實際中記憶體和交換分區的使用情況取決于你的使用情況,而 tmpfs 分區在其真正使用前是不會占用存儲空間的。
要将 <code>/tmp</code> 放到 tmpfs,将下行加入<code>/etc/fstab</code>:
可以指定大小,但不要修改 <code>mode</code> 選項,以保證檔案具有正确的通路權限(1777)。在上例中<code>/tmp</code> 将最多使用一半記憶體,要指定最大空間,使用<code>size</code> 挂載選項:
參閱 mount 指令 man 手冊以獲得更多的内容。
重新開機後方能生效。注意不要直接執行 <code>mount -a</code> 指令,因為可能造成無法通路目前目錄中的檔案(比如你應該保證 lockfiles 的正常存在)。然而,如果它們都是空的,那麼就可以直接執行<code>mount -a</code> 而不必重新開機電腦。
應用更改後,可以通過 <code>findmnt</code> 檢查是否生效:
一般需要大量讀寫操作的程式在使用 tmpfs 時都會提升性能。有些程式把共享記憶體放到 tmpfs 上時性能會大幅提升,例如将 Firefox Profile 檔案夾放到記憶體後,Firefox 性能大幅提升。
Note: tmpfs 目錄(<code>/tmp</code>) 挂載時需要去掉<code>noexec</code> 參數,否則有些編譯程式無法執行,此外,tmpfs 的預設大小是記憶體的一般,可能會産生空間不夠的問題。
下面指令可以讓makepkg在tmpfs目錄進行編輯,也可以在在<code>/etc/makepkg.conf</code>中進行設定:
為了取得對 FAT32 分區的寫權限,你必須修改<code>/etc/fstab</code>檔案。
“users”标簽的意思是任何使用者(甚至非 root 使用者)都可以挂載或解除安裝分區 '/dev/sdX'。“rw”标簽則配置設定讀寫的使用權。但我不知道“umask”标簽的意義(umask 是權限掩碼指令 umask=000 指任何人沒有特權,且權限為777,即所有人都可以讀、寫、執行)。我曾試圖在“man mount”中查詢,但是沒有什麼結果。
比如你的 FAT32 分區在 '/dev/sda9',你想将其挂載到 '/mnt/fat32',那麼你需要輸入并運作
本文轉自xiaocao1314051CTO部落格,原文連結:http://blog.51cto.com/xiaocao13140/1930572 ,如需轉載請自行聯系原作者