首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌入式NFS服务器不支持ver=2,但支持1,3 -这可能吗?

嵌入式NFS服务器不支持ver=2,但支持1,3 -这可能吗?
EN

Unix & Linux用户
提问于 2020-08-03 11:12:24
回答 1查看 2.7K关注 0票数 4

我来自MontaVista的2.6.37Linux已经编译了NFS模块。我从以下顺序开始:

代码语言:javascript
复制
rpcbind
rpc.nfsd 4
rpc.mountd
rpc.statd

使用默认配置文件和etab,如:

代码语言:javascript
复制
/mnt/sda1 192.168.50.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,no_root_squash,no_all_squash,no_subtree_check,secure_locks,acl,fsid=1,anonuid=65534,anongid=65534)

作为客户端,我的FC32一切都很好:

代码语言:javascript
复制
[root@leonp mnt]# mount -v 192.168.1.1:/mnt/sda1/ srv
mount.nfs: timeout set for Mon Aug  3 16:04:08 2020
mount.nfs: trying text-based options 'vers=4.2,addr=192.168.1.1,clientaddr=192.168.1.57'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'vers=4,minorversion=1,addr=192.168.1.1,clientaddr=192.168.1.57'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'vers=4,addr=192.168.1.1,clientaddr=192.168.1.57'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'addr=192.168.1.1'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 192.168.1.1 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 192.168.1.1 prog 100005 vers 3 prot UDP port 39445
[root@leonp mnt]#

当我试图连接只支持NFSv2的客户端时,问题就开始了。因此,要在PC上进行测试:

代码语言:javascript
复制
[root@leonp mnt]# mount -vvv -o vers=2 192.168.1.1:/mnt/sda1/ srv
mount.nfs: timeout set for Mon Aug  3 13:50:14 2020
mount.nfs: trying text-based options 'vers=2,addr=192.168.1.1'
mount.nfs: prog 100003, trying vers=2, prot=6
mount.nfs: trying 192.168.1.1 prog 100003 vers 2 prot TCP port 2049
mount.nfs: prog 100005, trying vers=1, prot=17
mount.nfs: trying 192.168.1.1 prog 100005 vers 1 prot UDP port 36357
mount.nfs: mount(2): Protocol not supported
mount.nfs: Protocol not supported

为什么要这样?我查过:

代码语言:javascript
复制
[root@leonp mnt]# rpcinfo 192.168.1.1 
   program version netid     address                service    owner
    100000    4    tcp       0.0.0.0.0.111          portmapper superuser
    100000    3    tcp       0.0.0.0.0.111          portmapper superuser
    100000    2    tcp       0.0.0.0.0.111          portmapper superuser
    100000    4    udp       0.0.0.0.0.111          portmapper superuser
    100000    3    udp       0.0.0.0.0.111          portmapper superuser
    100000    2    udp       0.0.0.0.0.111          portmapper superuser
    100000    4    local     /var/run/rpcbind.sock  portmapper superuser
    100000    3    local     /var/run/rpcbind.sock  portmapper superuser
    100003    2    tcp       0.0.0.0.8.1            nfs        unknown
    100003    3    tcp       0.0.0.0.8.1            nfs        unknown
    100003    2    udp       0.0.0.0.8.1            nfs        unknown
    100003    3    udp       0.0.0.0.8.1            nfs        unknown
    100021    1    udp       0.0.0.0.148.56         nlockmgr   unknown
    100021    3    udp       0.0.0.0.148.56         nlockmgr   unknown
    100021    4    udp       0.0.0.0.148.56         nlockmgr   unknown
    100021    1    tcp       0.0.0.0.228.206        nlockmgr   unknown
    100021    3    tcp       0.0.0.0.228.206        nlockmgr   unknown
    100021    4    tcp       0.0.0.0.228.206        nlockmgr   unknown
    100005    1    udp       0.0.0.0.142.5          mountd     superuser
    100005    1    tcp       0.0.0.0.130.95         mountd     superuser
    100005    2    udp       0.0.0.0.218.108        mountd     superuser
    100005    2    tcp       0.0.0.0.174.251        mountd     superuser
    100005    3    udp       0.0.0.0.154.21         mountd     superuser
    100005    3    tcp       0.0.0.0.132.150        mountd     superuser

唯一不支持v2的是nlockmgr --它可能是拒绝安装的原因吗?为了测试这一点,我尝试从运行中删除nlockmgr --没有成功。我试图通过注释掉100021来阻止它在/etc/rpc中,但没有成功。

更新:

代码语言:javascript
复制
#rcp.nfsd -d
rpc.nfsd: Checking netconfig for visible protocols.
rpc.nfsd: Enabling inet udp.
rpc.nfsd: Enabling inet tcp.
rpc.nfsd: knfsd is currently down
rpc.nfsd: Writing version string to kernel: +4.1 +2 +3 +4

#cat /proc/fs/nfsd/versions
+2 +3
============

任何帮助都将不胜感激。

EN

回答 1

Unix & Linux用户

发布于 2020-08-07 14:17:35

您需要调整NFS内核服务器以提供版本2(正如您已经注意到的,默认情况下它不再包括该版本)。在服务器上运行此程序将允许您测试建议的修补程序是否有效。

代码语言:javascript
复制
rpc.nfsd 0 && sleep 1           # Stop all previous threads
rpc.nfsd --nfs-version 2,3 8    # Restart 8 threads with versions 2 and 3

如果有效的话,你需要让它永久化。在我的Debian ("buster")系统上,似乎仍然需要编辑/etc/default/nfs-kernel-server。在您的系统中,可能会有所不同。

原码

代码语言:javascript
复制
# Number of servers to start up
RPCNFSDCOUNT=32

修正代码

代码语言:javascript
复制
# Options and number of servers to start up
RPCNFSDCOUNT='--nfs-version 2,3 8'
票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/602621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档