如何在 Ubuntu 20.04 / Armbian 21.08 上激活 NFS 服务器协议 v4
How to activate NFS server protocol v4 on Ubuntu 20.04 / Armbian 21.08
我刚刚在我的 SBC 运行 Ubuntu 20.04.3 LTS (Focal Fossa) 上安装了 Armbian。 cat /etc/os-release
的输出是:
NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"
PRETTY_NAME="Armbian 21.08.2 Focal"
VERSION_ID="20.04"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
我通过 apt-get install nfs-kernel-server
安装了 NFS 服务器。我想共享我的 LVM2 卷,但在检查支持哪个版本的 NFS 之前。
cat /proc/fs/nfsd/versions
的输出是:
-2 +3
rpcinfo -u localhost nfs
的输出是:
program 100003 version 3 ready and waiting
rpcinfo -p | grep nfs
的输出是:
program vers proto port service
100003 3 tcp 2049 nfs
100003 3 udp 2049 nfs
这三个都表明我的 NFS 服务器不支持 NFS v4,这让我很奇怪,因为我有最新的内核版本和最新的 OS 版本。
困扰我的是zcat /proc/config.gz | grep NFS
的输出:
# CONFIG_USB_FUNCTIONFS is not set
CONFIG_XENFS=m
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_KERNFS=y
CONFIG_NFS_FS=m
CONFIG_NFS_V2=m
CONFIG_NFS_V3=m
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=m
# CONFIG_NFS_SWAP is not set
# CONFIG_NFS_V4_1 is not set
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
CONFIG_NFS_DISABLE_UDP_SUPPORT=y
CONFIG_NFSD=y
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V3_ACL is not set
# CONFIG_NFSD_V4 is not set
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_NFS_COMMON=y
问题:
CONFIG_NFSD_V4 is not set
可能是 NFS v4 不工作的原因吗?
然后如何在 Ubuntu 20.04 / Armbian 21.08 上激活 NFS 服务器协议 v4?
在 Armbian 社区中,我找到了一个 post 回答了我的问题。
即使在通过 apt-get install nfs-kernel-server
安装 NFS 之后,它也只会安装用户-space 支持。
这是来自https://packages.debian.org/sid/nfs-kernel-server的原始包裹信息:
This package contains the user-space support needed to use the NFS
kernel server.
这意味着支持的 NFS 版本取决于内核编译时。甚至 NFSv4 及更高版本已经超过 10 年,它只能在所谓的内核配置中 activated/deactivated 看起来像:
# CONFIG_USB_FUNCTIONFS is not set
CONFIG_XENFS=m
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_KERNFS=y
CONFIG_NFS_FS=m
CONFIG_NFS_V2=m
CONFIG_NFS_V3=m
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=m
# CONFIG_NFS_SWAP is not set
# CONFIG_NFS_V4_1 is not set
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
CONFIG_NFS_DISABLE_UDP_SUPPORT=y
CONFIG_NFSD=y
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V3_ACL is not set
# CONFIG_NFSD_V4 is not set
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_NFS_COMMON=y
armbian 社区告诉我,它目前在某些板上已停用。这没有具体原因,如果社区中的某些人会更改内核配置,则很容易被激活。
我刚刚在我的 SBC 运行 Ubuntu 20.04.3 LTS (Focal Fossa) 上安装了 Armbian。 cat /etc/os-release
的输出是:
NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"
PRETTY_NAME="Armbian 21.08.2 Focal"
VERSION_ID="20.04"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
我通过 apt-get install nfs-kernel-server
安装了 NFS 服务器。我想共享我的 LVM2 卷,但在检查支持哪个版本的 NFS 之前。
cat /proc/fs/nfsd/versions
的输出是:
-2 +3
rpcinfo -u localhost nfs
的输出是:
program 100003 version 3 ready and waiting
rpcinfo -p | grep nfs
的输出是:
program vers proto port service
100003 3 tcp 2049 nfs
100003 3 udp 2049 nfs
这三个都表明我的 NFS 服务器不支持 NFS v4,这让我很奇怪,因为我有最新的内核版本和最新的 OS 版本。
困扰我的是zcat /proc/config.gz | grep NFS
的输出:
# CONFIG_USB_FUNCTIONFS is not set
CONFIG_XENFS=m
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_KERNFS=y
CONFIG_NFS_FS=m
CONFIG_NFS_V2=m
CONFIG_NFS_V3=m
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=m
# CONFIG_NFS_SWAP is not set
# CONFIG_NFS_V4_1 is not set
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
CONFIG_NFS_DISABLE_UDP_SUPPORT=y
CONFIG_NFSD=y
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V3_ACL is not set
# CONFIG_NFSD_V4 is not set
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_NFS_COMMON=y
问题:
CONFIG_NFSD_V4 is not set
可能是 NFS v4 不工作的原因吗?
然后如何在 Ubuntu 20.04 / Armbian 21.08 上激活 NFS 服务器协议 v4?
在 Armbian 社区中,我找到了一个 post 回答了我的问题。
即使在通过 apt-get install nfs-kernel-server
安装 NFS 之后,它也只会安装用户-space 支持。
这是来自https://packages.debian.org/sid/nfs-kernel-server的原始包裹信息:
This package contains the user-space support needed to use the NFS kernel server.
这意味着支持的 NFS 版本取决于内核编译时。甚至 NFSv4 及更高版本已经超过 10 年,它只能在所谓的内核配置中 activated/deactivated 看起来像:
# CONFIG_USB_FUNCTIONFS is not set
CONFIG_XENFS=m
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_KERNFS=y
CONFIG_NFS_FS=m
CONFIG_NFS_V2=m
CONFIG_NFS_V3=m
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=m
# CONFIG_NFS_SWAP is not set
# CONFIG_NFS_V4_1 is not set
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
CONFIG_NFS_DISABLE_UDP_SUPPORT=y
CONFIG_NFSD=y
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V3_ACL is not set
# CONFIG_NFSD_V4 is not set
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_NFS_COMMON=y
armbian 社区告诉我,它目前在某些板上已停用。这没有具体原因,如果社区中的某些人会更改内核配置,则很容易被激活。