fstab设置开机挂载--鸟哥[阅读]

大標題的圖示設定開機掛載:

手動處理 mount 不是很人性化,我們總是需要讓系統『自動』在開機時進行掛載的!本小節就是在談這玩意兒! 另外,從 FTP 伺服器捉下來的映像檔能否不用燒錄就可以讀取內容?我們也需要談談先!


小標題的圖示開機掛載 /etc/fstab 及 /etc/mtab

剛剛上面說了許多,那麼可不可以在開機的時候就將我要的檔案系統都掛好呢?這樣我就不需要每次進入 Linux 系統都還要在掛載一次呀!當然可以囉!那就直接到 /etc/fstab 裡面去修修就行囉!不過,在開始說明前,這裡要先跟大家說一說系統掛載的一些限制:

  • 根目錄 / 是必須掛載的﹐而且一定要先於其它 mount point 被掛載進來。
  • 其它 mount point 必須為已建立的目錄﹐可任意指定﹐但一定要遵守必須的系統目錄架構原則
  • 所有 mount point 在同一時間之內﹐只能掛載一次。
  • 所有 partition 在同一時間之內﹐只能掛載一次。
  • 如若進行卸載﹐您必須先將工作目錄移到 mount point(及其子目錄) 之外。

讓我們直接查閱一下 /etc/fstab 這個檔案的內容吧!

[root@www ~]# cat /etc/fstab
# Device        Mount point   filesystem parameters    dump fsck
LABEL=/1          /           ext3       defaults        1 1
LABEL=/home       /home       ext3       defaults        1 2
LABEL=/boot       /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-hdc5   swap        swap       defaults        0 0
# 上述特殊字體的部分與實際磁碟有關!其他則是虛擬檔案系統或
# 與記憶體置換空間 (swap) 有關。

其實 /etc/fstab (filesystem table) 就是將我們利用 mount 指令進行掛載時, 將所有的選項與參數寫入到這個檔案中就是了。除此之外, /etc/fstab 還加入了 dump 這個備份用指令的支援! 與開機時是否進行檔案系統檢驗 fsck 等指令有關。

這個檔案的內容共有六個欄位,這六個欄位非常的重要!你『一定要背起來』才好! 各個欄位的詳細資料如下:

Tips:
鳥哥比較龜毛一點,因為某些 distributions 的 /etc/fstab 檔案排列方式蠻醜的, 雖然每一欄之間只要以空白字元分開即可,但就是覺得醜,所以通常鳥哥就會自己排列整齊, 並加上註解符號(就是 # ),來幫我記憶這些資訊!
鳥哥的圖示
  • 第一欄:磁碟裝置檔名或該裝置的 Label:

這個欄位請填入檔案系統的裝置檔名。但是由上面表格的預設值我們知道系統預設使用的是 Label 名稱! 在鳥哥的這個測試系統中 /dev/hdc2 標頭名稱為 /1,所以上述表格中的『LABEL=/1』也可以被取代成為『/dev/hdc2』的意思。 至於Label可以使用 dumpe2fs 指令來查閱的。

Tips:
記得有一次有個網友寫信給鳥哥,他說,依照 e2label 的設定去練習修改自己的 partition 的 Label name 之後,卻發現,再也無法順利開機成功! 後來才發現,原來他的 /etc/fstab 就是以 Label name 去掛載的。但是因為在練習的時候, 將 Label name 改名字過了,導致在開機的過程當中再也找不到相關的Label name了。

所以啦,這裡再次的強調,利用裝置名稱 (ex> /dev/hda1) 來掛載 partition 時, 雖然是被固定死的,所以您的硬碟不可以隨意插在任意的插槽,不過他還是有好處的。 而使用 Label name 來掛載,雖然就沒有插槽方面的問題,不過,您就得要隨時注意您的 Label name 喔!尤其是新增硬碟的時候! ^_^
鳥哥的圖示
  • 第二欄:掛載點 (mount point)::

就是掛載點啊!掛載點是什麼?一定是目錄啊~要知道啊!

  • 第三欄:磁碟分割槽的檔案系統:

在手動掛載時可以讓系統自動測試掛載,但在這個檔案當中我們必須要手動寫入檔案系統才行! 包括 ext3, reiserfs, nfs, vfat 等等。

  • 第四欄:檔案系統參數:

記不記得我們在 mount 這個指令中談到很多特殊的檔案系統參數? 還有我們使用過的『-o iocharset=cp950』?這些特殊的參數就是寫入在這個欄位啦! 雖然之前在 mount 已經提過一次,這裡我們利用表格的方式再彙整一下:

參數 內容意義
async/sync
非同步/同步
設定磁碟是否以非同步方式運作!預設為 async(效能較佳)
auto/noauto
自動/非自動
當下達 mount -a 時,此檔案系統是否會被主動測試掛載。預設為 auto。
rw/ro
可讀寫/唯讀
讓該分割槽以可讀寫或者是唯讀的型態掛載上來,如果你想要分享的資料是不給使用者隨意變更的, 這裡也能夠設定為唯讀。則不論在此檔案系統的檔案是否設定 w 權限,都無法寫入喔!
exec/noexec
可執行/不可執行
限制在此檔案系統內是否可以進行『執行』的工作?如果是純粹用來儲存資料的, 那麼可以設定為 noexec 會比較安全,相對的,會比較麻煩!
user/nouser
允許/不允許使用者掛載
是否允許使用者使用 mount 指令來掛載呢?一般而言,我們當然不希望一般身份的 user 能使用 mount 囉,因為太不安全了,因此這裡應該要設定為 nouser 囉!
suid/nosuid
具有/不具有 suid 權限
該檔案系統是否允許 SUID 的存在?如果不是執行檔放置目錄,也可以設定為 nosuid 來取消這個功能!
usrquota 注意名稱是『 usrquota 』不要拼錯了!這個是在啟動 filesystem 支援磁碟配額模式,更多資料我們在第四篇再談。
grpquota 注意名稱是『grpquota』,啟動 filesystem 對群組磁碟配額模式的支援。
defaults 同時具有 rw, suid, dev, exec, auto, nouser, async 等參數。 基本上,預設情況使用 defaults 設定即可!

  • 第五欄:能否被 dump 備份指令作用:

dump 是一個用來做為備份的指令(我們會在第二十五章備份策略中談到這個指令), 我們可以透過 fstab 指定哪個檔案系統必須要進行 dump 備份! 0 代表不要做 dump 備份, 1 代表要每天進行 dump 的動作。 2 也代表其他不定日期的 dump 備份動作, 通常這個數值不是 0 就是 1 啦!

  • 第六欄:是否以 fsck 檢驗磁區:

開機的過程中,系統預設會以 fsck 檢驗我們的 filesystem 是否完整 (clean)。 不過,某些 filesystem 是不需要檢驗的,例如記憶體置換空間 (swap) ,或者是特殊檔案系統例如 /proc 與 /sys 等等。所以,在這個欄位中,我們可以設定是否要以 fsck 檢驗該 filesystem 喔。 0 是不要檢驗, 1 表示最早檢驗(一般只有根目錄會設定為 1), 2 也是要檢驗,不過 1 會比較早被檢驗啦! 一般來說,根目錄設定為 1 ,其他的要檢驗的 filesystem 都設定為 2 就好了。

例題:
假設我們要將 /dev/hdc6 每次開機都自動掛載到 /mnt/hdc6 ,該如何進行?
答:
首先,請用 nano 將底下這一行寫入 /etc/fstab 當中;
[root@www ~]# nano /etc/fstab
/dev/hdc6  /mnt/hdc6    ext3    defaults   1 2
再來看看 /dev/hdc6 是否已經掛載,如果掛載了,請務必卸載再說!
[root@www ~]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hdc6              1976312     42072   1833836   3% /mnt/hdc6
# 竟然不知道何時被掛載了?趕緊給他卸載先!

[root@www ~]# umount /dev/hdc6
最後測試一下剛剛我們寫入 /etc/fstab 的語法有沒有錯誤!這點很重要!因為這個檔案如果寫錯了, 則你的 Linux 很可能將無法順利開機完成!所以請務必要測試測試喔!
[root@www ~]# mount -a
[root@www ~]# df
最終有看到 /dev/hdc6 被掛載起來的資訊才是成功的掛載了!而且以後每次開機都會順利的將此檔案系統掛載起來的! 由於這個範例僅是測試而已,請務必回到 /etc/fstab 當中,將上述這行給他註解或者是刪除掉!
[root@www ~]# nano /etc/fstab
# /dev/hdc6  /mnt/hdc6    ext3    defaults   1 2

/etc/fstab 是開機時的設定檔,不過,實際 filesystem 的掛載是記錄到 /etc/mtab 與 /proc/mounts 這兩個檔案當中的。每次我們在更動 filesystem 的掛載時,也會同時更動這兩個檔案喔!但是,萬一發生您在 /etc/fstab 輸入的資料錯誤,導致無法順利開機成功,而進入單人維護模式當中,那時候的 / 可是 read only 的狀態,當然您就無法修改 /etc/fstab ,也無法更新 /etc/mtab 囉~那怎麼辦? 沒關係,可以利用底下這一招:

[root@www ~]# mount -n -o remount,rw /
posted @ 2013-11-08 16:20  胡.杰  阅读(1522)  评论(0编辑  收藏  举报