使用 NFS 設置具有自動掛載的文件共享
問題是:我想在我的筆記型電腦和家裡的電腦之間創建一個文件共享,這樣我就可以從兩台機器上訪問我的文件。這
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/fstab
for 的意義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更多有類似的問題。