Centos

linux automount 的配置在哪裡?

  • January 22, 2014

我有一個 centos 盒子,它有一些 NFS 掛載。我試圖弄清楚這些 NFS 文件系統是否已安裝。我發現如果我將 /usr/sbin/automount 重命名為其他名稱,重新啟動機器後,那些 NFS 將不會被掛載。所以我可以確定自動掛載會執行那些 NFS 掛載。

但是 /etc/auto.master 沒有顯示這些 NFS 的資訊。我想知道如何自動掛載如何掛載哪個 NFS?

$ cat /etc/auto.master
#
# Sample auto.master file
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# For details of the format look at autofs(5).
#
/misc   /etc/auto.misc
#
# NOTE: mounts done from a hosts map will be mounted with the
#   "nosuid" and "nodev" options unless the "suid" and "dev" 
#   options are explicitly given.
#
/net    -hosts
#
# Include central master map if it can be found using
# nsswitch sources.
#
# Note that if there are entries for /net or /misc (as
# above) in the included master map any keys that are the
# same will not be seen as the first read key seen takes
# precedence.
#
+auto.master

但在 下/var/run,我發現類似以下內容:

prw-------  1 root      root         0 Jan 20 04:36 autofs.fifo-bldmnt
prw-------  1 root      root         0 Jan 20 04:36 autofs.fifo-blr

文件 auto.master 通常包含這一行:

/net    -hosts

一個較舊的替代方案是(曾經):

/net    /etc/auto.net

第一行是引用文件 /etc/hosts 的所謂內置映射,第二個範例是所謂的程序映射(通常是一個簡單的 shell 腳本),它可以更好地向您解釋自動掛載器的工作原理。

我猜你的系統上有一些符號連結指向遠端伺服器上的某個路徑/net(或者在你的副本中使用任何 autofs 路徑前綴而不是 /net /etc/auto.master)。

每當訪問錨點下方的路徑時/net,自動掛載程序都會擷取此嘗試並嘗試將引用的目錄掛載到那裡。

例子:

假設自動掛載程序正在執行,並且在網路中存在一個名為 NFS 伺服器的 NFS 伺服器HostA,它導出一個Documents在他的/etc/exports文件中命名的目錄。然後使用命令

cd /net/HostA/Documents

可以自動將這個遠端目錄掛載到那裡,而無需在 NFS 客戶端上進行進一步配置。

內部結構:

與其他服務一樣,自動掛載使用命名管道進行一些內部程序間通信。因此,/var/run/問題中提到的文件是在真正安裝任何東西之前由自動安裝過程創建的。

在 autofs 包的早期版本中,/etc/auto.net有一個腳本,它呼叫命令showmountkshowmount --no-headers -eNFS-SERVER 從 NFS 伺服器獲取導出文件系統的列表。

showmount在客戶端顯示在/etc/exports伺服器端文件中定義的目錄。該文件可能包含目錄/。但出於安全考慮,這從來都不是我見過的任何 Linux 發行版的預設設置。

引用自:https://serverfault.com/questions/568504