Mount

使用 NFS 設置具有自動掛載的文件共享

  • September 6, 2020

問題是:我想在我的筆記型電腦和家裡的電腦之間創建一個文件共享,這樣我就可以從兩台機器上訪問我的文件。這laptop是伺服器(因為我在移動時可能需要文件)並且pc是客戶端。

這是我對解決方案的嘗試:在兩台機器上都有 linux (debian),我決定使用 NFS。一切正常,直到我重新啟動兩台機器並遇到了 catch-22。理想情況下,我希望伺服器自動掛載 NFS,所以我在/etc/fstab. 雖然,在重新啟動伺服器後,我注意到我必須重新執行exportfs -a才能重新載入我的/etc/exports,它看起來像這樣:

/nfs     pc(rw,sync,no_subtree_check)

但是,為了做到這一點,pc必須可以訪問,否則我會收到此錯誤

exportfs: failed to resolve pc

因此,如果pc必須在打開之前可以訪問laptop,它就違背了擁有/etc/fstabfor 的意義pc,除非我預計很少重新啟動laptop,這不是我的情況。

簡而言之:pc希望laptop可以通過 fstab 自動掛載 NFS,同時laptop希望pc可以訪問以便在導出中分配正確的權限。有沒有辦法exportfs -a在啟動時執行laptop而無需啟動pc

伺服器不應該關心客戶端是否可以訪問。它只是提供一個共享……無論它是否被使用。

您收到“exportfs: failed to resolve pc”的錯誤,並不是說它不能“到達”pc。它說它不能“解決”電腦。問題是您通過主機名引用特定客戶端,但係統無法將主機名解析為 IP 地址。

顯然,這是 exportfs 工作方式中的一個已知錯誤。我沒有深入研究它,但在我看到的情況下(只是Google的錯誤消息),這是 nfs 啟動和 dns 服務可用之間的時間問題。DHCP 定義的客戶端和 DNS 更新速度不夠快也存在問題。

無論如何,您的問題是名稱解析問題。如果“pc”具有靜態 IP 地址,您可以使用 /etc/exports 中的地址,或者將“pc”添加到 /etc/hosts 文件中。如果任一主機都是 DHCP,那麼您可能就不走運了。

在客戶端(“pc”),您可能想研究使用自動掛載程序(autofs)來掛載遠端文件系統,而不是使用 /etc/fstab。Automounter 只會在您需要時掛載文件系統,因此如果 NFS 伺服器不可用,它不太可能在系統啟動時掛起。

一些關於 exportfs 和名稱解析問題的參考: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=860264 https://forums.centos.org/viewtopic.php?t=69981 Lot’s更多有類似的問題。

引用自:https://unix.stackexchange.com/questions/608121