Mount

Alpine Linux – NFS:無法正確導出掛載點

  • January 30, 2021

配置

我在 Raspberry Pi 4 上執行版本 3.13.0。/etc/export/看起來像這樣:

/export  *(fsid=root,sync,crossmnt,nohide,no_subtree_check)

# regular directory that can be mounted correctly by client
/export/test  *(sync,crossmnt,no_subtree_check)

# mount point of /dev/sdb1; cannot be mounted by client
/export/drive  *(sync,crossmnt,no_subtree_check)

最初,我將 NFS 限制為 4 和 4.1 版本/etc/conf.d/nfs,但在發現問題後我將所有內容恢復為預設值。

問題

我嘗試將 btrfs 格式的驅動器和 ExFat 格式的驅動器安裝到/export/drive. 兩者都在主機系統上按預期工作。

在客戶端系統上安裝 和 都可以正常工作/export/test/export但安裝/export/drive只是凍結了提示:沒有錯誤消息,什麼都沒有。我等了幾分鐘。

安裝時/export,嘗試通過查看目錄/exportdrive子目錄的內容ls也會凍結提示,如上所述。不過,列出/export/test工作的內容。

安裝時我沒有指定任何選項:mount 10.0.0.20:/drive /mnt/drive

執行exportfs -arv不報告任何錯誤。

伺服器的日誌沒有顯示任何異常,(失敗的)掛載嘗試/export/drive產生了與成功掛載相同的消息/export/test

我試過的

我嘗試執行rcpdebug -m nfsd -s all(如this short guide所建議的)導致此錯誤:

/proc/sys/sunrpc/nfsd_debug: No such file or directory

我還嘗試添加mp選項,如果是掛載點,它應該只導出指定的路徑。我對兩者都進行了嘗試,/export/test並且drive/test已成功阻止安裝;安裝/drive與以前沒有什麼不同。

最後,我在客戶端系統上複製了設置並調換了角色:使用與上述相同的配置設置我的 Gentoo 系統,/export/drive Alpine 系統訪問——它成功了!

更新

我還檢查nfsstat了一切看起來正常的地方:零badcalls、badclnt、badauth

在(不成功)安裝後,在客戶端上執行nfsstat -m並沒有列印任何東西/drive——但是它給出了一個結果/test

所以我認為也許客戶可能是問題所在。在mount localhost:/drive /mnt/drive我的 Alpine 和 Gentoo 系統上,結果都沒有改變:每當 Alpine 充當伺服器時,掛載都會導致凍結。

最後,我嘗試使用 強制 NFS 3 -o nfsvers=3,導致與往常一樣的結果(/test工作,/drive凍結)。

問題

  • 我可以嘗試如何在 Alpine 上進行這項工作?
  • 我應該考慮任何安裝選項嗎?
  • 我該如何使用rcpdebug
  • 是否有另一種方法可以增加詳細程度並獲得更多資訊?
  • 我可以提供哪些資訊來輕鬆幫助我?
  • 我還能在哪裡尋求支持?

任何提示都非常感謝!謝謝!

我最初在r/AlpineLinux上問過這個問題。


編輯

在不同的作業系統(Gentoo、Raspberry Pi OS Lite)上測試相同的設置時,我沒有遇到任何問題。我相信這是 Alpine Linux 的一個錯誤;我打開了一個問題:https ://gitlab.alpinelinux.org/alpine/aports/-/issues/12360

fsid失踪。/etc/exports現在看起來像這樣:

/export *(fsid=root,sync,no_subtree_check,crossmnt)
/export/test *(sync,no_subtree_check)
/export/drive *(sync,no_subtree_check,fsid=1)

有關更多上下文和解釋,請查看現已解決的問題

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