v0.3(1998/10/22)
自動掛載程式(automounter)為 daemon,針對特定檔案系統自動掛載/卸載。當檔案系統已卸載而使用者嘗試存取時,自動重新掛載。適用於大型網路環境(機器間互掛、非持續開機)、可移式裝置、強制 ASCII 轉換等場景。
核心需啟用 autofs 支援:2.0.x 為實驗選項(已穩定),2.1.x/2.2.x 正式納入。通常以 RPM 安裝(Red Hat 安裝過程含之),由 /etc/rc.d/init.d 啟動腳本啟動。確認服務已啟動(用 control-panel 或對應管理工具)。非 RPM 發行版有各自安裝方式。
RPM 安裝會引導設定,兩個關鍵檔案位於 /etc:
auto.master 主映射檔/auto /etc/auto.misc --timeout 60
/auto)。auto.misc)。--timeout 60 表示閒置 60 秒嘗試卸載(使用中不卸載)。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/kernel、/auto/floppy)。mount(8)),-fstype= 指定檔案系統類型。:/dev/cdrom);無冒號為 NFS(ftp.kernel.org:/pub/linux)。可在 auto.master 定義多個映射檔對應不同基底目錄。
預設 60 秒 timeout 讓使用者等待退出磁片過久。替代方案:向 autofs 進程發送 SIGUSR1 立即卸載所有可卸載檔案系統:
kill -USR1
問題:autofs 以 root 執行,僅接受 root 信號,但使用者通常非 root。解決方案:
sudo 授權使用者執行 killall -USR1 automount:# /etc/sudoers ALL ALL=NOPASSWD:/usr/bin/killall -USR1 automount
注意:sudo 不允許反引號子命令,需用 killall 直接匹配進程名。避免對其他進程發送 SIGUSR1 造成副作用(如重啟視窗管理器、終止 xemacs)。
/auto/floppy)autofs 特性:未使用時掛載點隱藏,存取時自動出現。圖形檔案管理器可能需手動輸入路徑,無法從隱藏點選取,此為主要缺點。若介意可修改原始碼(.c 檔)。
用 df 或無參數 mount(顯示掛載選項)。
非 autofs 問題。當時 mount 的 auto 類型嘗試順序先 msdos 後 vfat,導致長檔名失效。解法:明確指定 -fstype=vfat 放棄自動偵測,或建立多個掛載點對應不同檔案系統類型。期待 mount 未來改進啟發式順序。
kill -SIGUSR1 無法卸載表示檔案系統正在使用中。檢查是否有 shell 仍在該目錄、或目錄瀏覽器殘留隱藏引用。用 fuser 找出占用進程。
autofs 實作者值得感謝,文件清晰易用,優於 AMD。版權聲明見原始碼。