Ubuntu
嘗試訪問目錄時出現“過時的 NFS 文件句柄”錯誤
我有四台電腦,其中兩台(比如 n1 和 n2)我安裝了 NFS4 伺服器並導出:
/export 10.0.0.0/16(rw,fsid=0,no_subtree_check,async,insecure,no_root_squash) /export/home 10.0.0.0/16(rw,fsid=0,no_subtree_check,async,insecure,no_root_squash)
現在,n1 和 n2 具有相同的配置,我可以在我的任何電腦(在 /home/n1 和 /home/n2)上安裝和解除安裝這些資源而不會出錯,但我只能從 n1 訪問資源。當我嘗試
ls
從 n2 進入目錄時,出現錯誤:“過時的 NFS 文件句柄”。我的網路工作正常,我沒有防火牆,它們都具有相同的配置和相同的 Ubuntu 10.04 伺服器版本。
在日誌中的客戶端電腦上,我收到此錯誤:
[585039.584017] NFS: server 10.0.1.4 error: fileid changed [585039.584019] fsid 0:16: expected fileid 0x1ba54e2, got 0x3f20001
我已經在伺服器機器上檢查過了,這個 0x3f20001 是
/export
目錄的 id,而 0x1ba54e2 是/export/home
.我的 fstab 看起來像這樣:
10.0.1.4:/home /home/n2 nfs4 _netdev,auto 0 0
IP 10.0.1.4 屬於 n2 主機。
任何的想法?
看起來這是 fstab 中錯誤綁定的問題。早些時候,當我設置它時,我不小心在 n2 上的 fstab 中交換了 src 和 dest,當時我將它綁定到
/home/n2
然後,我移動了一些主目錄並將此綁定更改為正確的。但可能我沒有重新安裝它(我一定忘記這樣做了)。我嘗試更新軟體包,重新啟動後我注意到它
/export/home
是空的,所有數據都在/home/n2
n2 上。所以我又把它移到了/export/home
,一切正常。所以我猜 NFS 在導出從其他目錄綁定的目錄時遇到問題。
每個導出的 fsid 應該不同,並且在您的配置中設置為 0。
您應該嘗試為每台伺服器上的每個導出設置不同的 fsid。