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

本文详细介绍了如何在 Linux 系统开机时自动挂载文件系统,包括使用 /etc/fstab 文件进行配置的方法、注意事项以及如何验证配置是否正确。通过手动编辑 /etc/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 /

转载于:https://www.cnblogs.com/jackhub/p/3414502.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值