Alpine Linux – NFS:無法正確導出掛載點
配置
我在 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
,嘗試通過查看目錄/export
或drive
子目錄的內容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)
有關更多上下文和解釋,請查看現已解決的問題。