啟動掛載 /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 等命令有關。
第一欄:磁碟裝置檔名或該裝置的 Label:
這個欄位請填入檔案系統的裝置檔名。但是由上面表格的預設值我們知道系統預設使用的是 Label 名稱! 在鳥哥的這個測試系統中 /dev/hdc2 標頭名稱為 /1,所以上述表格中的『LABEL=/1』也可以被取代成為『/dev/hdc2』的意思。 至於Label可以使用 dumpe2fs 命令來查閱的。
第二欄:掛載點 (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 就好了。
/etc/fstab 是啟動時的配置檔案,不過,實際 filesystem 的掛載是記錄到 /etc/mtab 與 /proc/mounts 這兩個檔案當中的。每次我們在更動 filesystem 的掛載時,也會同時更動這兩個檔案喔!
但是,萬一發生您在 /etc/fstab 輸入的資料錯誤,導致無法順利啟動成功,而進入單人維護模式當中,那時候的 / 可是 read only 的狀態,當然您就無法修改 /etc/fstab ,也無法升級 /etc/mtab 囉~那怎麼辦? 沒關係,可以利用底下這一招:
[root@www ~]# mount -n -o remount,rw /