Permissions

systemd 下的 NFS v4 日誌在哪裡?

  • November 22, 2020

我的錯誤是:

mount.nfs4: access denied by server while mounting fileserver:/export/path/one

我的問題是:

伺服器上的詳細日誌資訊在哪裡(在 systemd 下)?

更多資訊:

我在 AskUbuntu 上從 Ubuntu 客戶端的角度問了一個類似的問題。我在這個問題上的重點是 Arch Linux 伺服器。特別是,我正在伺服器上尋找有助於我理解問題的日誌。

這是背景:

我們的小型 LAN 正在執行 Arch Linux NFS v4 文件伺服器。我們有幾個執行 Ubuntu 15.10 和 16.04 的客戶端。我們有一個執行 Ubuntu 14.04 的客戶端。14.04 客戶端將不會連接到文件伺服器。其他的都連接正常。所有客戶端的設置都相同。所有客戶端都列在伺服器上的 /etc/exports 中。

我需要在 Arch linux 伺服器上找到更詳細的錯誤資訊。但是,journalctl 不顯示與 nfs 相關的任何內容,並且不包含與 nfs 訪問被拒絕錯誤相關的任何條目。

14.04 客戶端可以 ping 文件伺服器以及通過 SSH 登錄。使用者名/ID 以及組匹配。(我在客戶端和伺服器上使用相同的使用者帳戶/uid。它是 uid 1000。)

更多資訊:

$ sudo mount -a (on client)
mount.nfs4: access denied by server while mounting fileserver:/export/path/one
mount.nfs4: access denied by server while mounting fileserver:/export/path/two

客戶端可以 ping 文件伺服器(反之亦然):

$ ping fileserver
PING fileserver (192.168.1.1) 56(84) bytes of data.
64 bytes from fileserver (192.168.1.1): icmp_seq=1 ttl=64 time=0.310 ms

客戶端成功登錄基於 LAN 的文件伺服器:

$ ssh fileserver
Last login: Tue Aug 16 14:38:26 2016 from 192.168.1.2
[me@fileserver ~]$ 

文件伺服器的掛載導出並rpcinfo暴露給客戶端:

$ showmount -e fileserver    # on client
Export list for fileserver:
/export/path/one/ 192.168.1.2
/export/path/two/ 192.168.1.2,192.168.1.3

$ rpcinfo -p fileserver (on client)
   program vers proto   port  service
   100000    4   tcp    111  portmapper
   100000    3   tcp    111  portmapper
   100000    2   tcp    111  portmapper
   100000    4   udp    111  portmapper
   100000    3   udp    111  portmapper
   100000    2   udp    111  portmapper
   100024    1   udp  58344  status
   100024    1   tcp  58561  status
   100005    1   udp  20048  mountd
   100005    1   tcp  20048  mountd
   100005    2   udp  20048  mountd
   100005    2   tcp  20048  mountd
   100005    3   udp  20048  mountd
   100005    3   tcp  20048  mountd
   100003    4   tcp   2049  nfs
   100003    4   udp   2049  nfs

這是直接掛載導出時的錯誤:

$ sudo mount -vvv -t nfs4 fileserver:/export/path/one /path/one/

   mount: fstab path: "/etc/fstab"
   mount: mtab path:  "/etc/mtab"
   mount: lock path:  "/etc/mtab~"
   mount: temp path:  "/etc/mtab.tmp"
   mount: UID:        0
   mount: eUID:       0
   mount: spec:  "fileserver:/export/path/one"
   mount: node:  "/path/one/"
   mount: types: "nfs4"
   mount: opts:  "(null)"
   mount: external mount: argv[0] = "/sbin/mount.nfs4"
   mount: external mount: argv[1] = "fileserver:/export/path/one"
   mount: external mount: argv[2] = "/path/one/"
   mount: external mount: argv[3] = "-v"
   mount: external mount: argv[4] = "-o"
   mount: external mount: argv[5] = "rw"
   mount.nfs4: timeout set for Tue Aug 16 16:10:43 2016
   mount.nfs4: trying text-based options 'addr=192.168.1.1,clientaddr=192.168.1.2'
   mount.nfs4: mount(2): Permission denied
   mount.nfs4: access denied by server while mounting fileserver:/export/path/one

對於客戶端和伺服器 Arch linux,我遇到了完全相同的問題。解決方案是使用主機名/etc/exports而不是 IP 地址。我改變了這個:

/srv/nfs 192.168.10(rw,fsid=root,no_subtree_check)
/srv/nfs/media 192.168.10(rw,no_subtree_check)
/srv/nfs/share 192.168.10(rw,no_subtree_check)

對此:

/srv/nfs iguana(rw,fsid=root,no_subtree_check)
/srv/nfs/media iguana(rw,no_subtree_check)
/srv/nfs/share iguana(rw,no_subtree_check)

這導致了一個稍微不同的問題:

[root@iguana data]# mount -t nfs4 frog:/srv/nfs/media /data/media
mount.nfs4: Protocol not supported

我對 NFS4 沒有太多經驗;顯然,您不應該在 mount 命令中包含 NFS 根路徑。這終於奏效並安裝了卷:

[root@iguana data]# mount -t nfs4 frog:/media /data/media

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