class="21913">
v0.3, 22 October 1998
--------------------------------------------------------------------------------
這份文件在描述自動檔案系統的自動掛載程式,如何設定並指出一些應該避免的問題。
--------------------------------------------------------------------------------
1. 簡介
1.1 檔案系統自動掛載 - 是什麽及為什麽
檔案系統自動掛載是一個可針對特定檔案系統自動掛載(卸載)檔案系統的 daemon。假如檔案系統已經卸下了,而一個使用者嘗試去使用它,那麽檔案系統會自動的再掛載上去。這在大型的網路環境裡,以及一些在機器之間相互掛載檔案系統的時候特別有用 (尤其是那些不是一直開機的機器)。對一些可移式的裝置或一些其他用途都很有用,像是可以很容易的在 DOS 檔案系統上做一些強制的 ascii 的轉換。
1.2 檔案系統自動掛載程式的種類
在 Linux 上有兩種檔案系統自動掛載程式; AMD 和 autofs。 AMD 是檔案系統自動掛載程式的 daemon ,而且功能就像 SunOS 上的 AMD 一樣。它是在 User space 中實作的,就是說它不是核心的一部份。它也不需要核心知道檔案系統自動掛載是怎麽一回事,假如你用 NFS 掛上本機的檔案系統,透過 AMD ,它幫你處理了所有透過 NFS 系統的檔案系統自動掛載時的網路訊息交換。 Autofs 是一個用以輔助核心的新系統,也就是說核心的檔案系統程式碼知道自動掛載點在哪,以及它底層所使用的檔案系統是什麽,然後自動掛載程式便可以開始運作。在這份文件中只會談到 autofs。
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
2. 安裝
因為 autofs 是實作在核心空間,你的核心一定要加入 autofs 支援。在 2.0.xx 版,它還是一個實驗性選項,但是已經相當穩定。在版本 2.1.xx (和 2.2.xx) 就不再是實驗性的了。
檔案系統自動掛載程式和它的設定檔都是必備的,用 rpms (在 RedHat 裡,是安裝的一部份) 是很好的方法。檔案系統自動掛載程式應該由 /etc/rc.d/init.d 目錄下的RC檔啟動。 rpm 會替你安裝這些程式及設定檔,但是你應該去確定它被啟動了沒,不管是用 RedHat 的 control-panel 或是其他 Linux 套件的任何方式。非 rpm 的套件也會有適合他們自己系統的那一套。假如你正在讀這份文件,表示你可能不想知道 rc 做些什麽,所以不必花太多功夫在研究 rc 描述檔在做些什麽事。
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
3. 設定
利用 RPM 安裝 autofs 將會很輕松地把你帶到這個步驟,但是現在的這個部分你可能無法確定你是否曾經做過。
在 /etc 下面有兩個檔案,一個是 auto.master 而另外一個是 auto.misc 。我的 auto.master 看起來像這樣:
/auto /etc/auto.misc --timeout 60
第一個欄位不是掛載點,它是掛載點的集合(在第二個欄位可以找到)所在的地方。第三個選項是說自動掛載的檔案系統在使用後的 60 秒後會試著卸載下來。當然,如果正在使用中是不能卸下的。
Auto.misc 是一個 “映射檔“。 多個映射檔可以在 auto.master 中被定義。我的 auto.misc 看起來像是這樣:
kernel -ro,soft,intr ftp.kernel.org:/pub/linux
cd -fstype=iso9660,ro :/dev/cdrom
zip -fstype=auto :/dev/hdd4
floppy -fstype=vfat :/dev/fd0
第一個欄位是掛載點。在這個例子它可能是 /auto/floppy 什麽的。中間欄位是選項;你可以在 mount 的線上使用說明中找到相關的資訊。最後一個欄位指出檔案系統的來源。寫著 "kernel" 的那一行表示用 NFS 來掛載檔案系統。其他行的冒號表示這是本機的裝置。
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
4. 等待卸下檔案系統可真是漫長
有些人可能眼睜睜等著 60 秒的 timeout 時間到並且想著 如果要退出磁片這可真是太久了.. 也許我可以直接對磁碟下 sync 然後拿出磁片而且沒有人會注意到。 讓我來建議一個 比較理智的替代方案。首先呢,你可以改變 timeout 的值,但是在使用後的15秒或其他秒數就讓系統卸下檔案系統似乎有點沒效率。實際上有一個方法可以讓檔案系統自動掛載程式卸下檔案系統。如果你送一個(用 kill 程式) 訊號 SIGUSR1 給檔案系統自動掛載程序,它會卸下任何它可以卸下的。但是人們開始在他們的視窗管理程式上做一個卸下檔案系統的按鈕之前,還有一個小問題。
檔案系統自動掛載程序是被 root 所執行的,所以它只能接受 root 的訊號。你想用檔案系統自動掛載程式可能有半數以上的理由是因為你不是系統管理員卻想要掛入和卸下檔案系統。寫一個可以設定使用者身份識別碼的C程式可以輕易達成,但這樣的方法並不好。不管怎樣,藉由 sudo 程式也可以允許使用者送出一些適當的 kill 訊號。唯一的問題是 sudo 並不允許你以 ` 來執行次命令,所以你必須自己找出 autofs 的程序識別碼。你應該有一個程式叫做 killall,這可以讓你做到這些: (幸好有這些個建議)
ALL ALL=NOPASSWD:/usr/bin/killall -USR1 automount
否則,你要允許你的使用者送 -SIGUSR1 給所有的程序。這對一些程式有不同的影響;它可能會使某些視窗管理器重新啟動,而且終止 xemacs。所以在這兒希望 killall 沒有緩沖區溢出的問題...
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
5. 問題
5.1 我找不到 /auto/floppy ,或任何我要找的掛載點。
如果 automount 正確的安裝,即使沒用到時看不到這些掛載點,當你試著用它時,任何你要的掛載點都會在那兒。如果你用圖形界面的目錄浏覽程式,你可能要手動打入掛載點的名字。不幸的是,無法從看不見的這些掛載點中選出所要用的,正是 autofs 的主要缺點。如果這造成你的問題,去編輯設定檔案。 (提示,就是那些結尾是 .c 的檔)
5.2 我怎麽看到已經掛載哪些東西?
用 df 命令。 mount 不加任何的選項也有同樣的功能,並且秀出它所掛上的一些選項。
5.3 我放進一片 win95 的磁片 ("vfat") 而它卻自動偵測到它只是一片一般的 FAT 磁片。
這不是檔案系統自動掛載程式的問題。當這份文件正在寫的時候, "auto" 這種檔案種類在成功的掛載一個 msdos 檔案系統之前並不會嘗試 vfat 的掛載。 VFAT 就是把 Win95 和 WinNT 的長檔名擠進 FAT/MSDOS 檔案系統。
根據 mount 的其中一個作者說,因為 mount 只是包裝了一個必須指定檔案系統種類的系統呼叫,把檔案系統種類弄清楚仍然是使用者的責任。讓 mount 照著列表的順序,去一種一種的檔案系統去試,而不是用目前仍在考慮的啟發式的方法。我確定如果有任何人想要努力找出 mount 程式的作者(們),他們將會歡迎你的建議。所以現在呢,這表示你不能掛載 vfat 除非你放棄自動偵測其他檔案系統的能力。希望這很快就能改進。在此同時,你已經可以很自由的建立多個掛載點並指定不同的檔案系統。
5.4 我的檔案系統 /grumblesmurf 已經掛上但是用 kill -SIGUSR1 卻無法卸載。
這表示它正在使用中。可能連系統管理員都不能用手動的卸載它。如果你是讓它自動掛載的的人(也就是說,不可能是別人正在用它)看看是不是有一個 shell 是在那個目錄中。假如沒有的話,找找看其他東西(特別像是目錄浏覽器之類的)可能留下什麽看不見的東西在裡面。假如你放棄尋找,你可以試試 fuser 程式。
5.5 有 autofs 這樣的好東西,我應該感謝誰呢?
決不會是我。這跟我一點關系也沒有。我只是要讓大家注意到 autofs 有多棒,有多麽的容易使用. 比起 AMD 的原創的那些人(提示,他們賣一個超額的單功能產品和太古時代版的免費工具) autofs 有很清楚的文件並且我由衷的感謝實作的這些人。每樣東西都有版權聲明,很抱歉我不能提供一個感謝清單。
5.6 我可以到哪裡學更多關於檔案系統自動掛載的資訊?
有一個 autofs 的入門手冊在 url url=" http://www.linuxhq.com/lg/issue24/nielsen.html">。也可以參考 am-utils 在 http://www.cs.columbia.edu/~ezk/am-utils
(感謝這些 URL)
--------------------------------------------------------------------------------