使用 nfs4 挂载时出现“无此设备”错误

使用 nfs4 挂载时出现“无此设备”错误

我正在尝试workspace通过 NFS 将文件夹从服务器挂载到客户端。为此,我通过在服务器上/export添加以下内容将文件夹绑定到:/etc/fstab

/home   /export none    bind

/etc/exports然后我在我的服务器上添加以下几行:

/export     *(ro,sync,no_subtree_check,insecure,fsid=0) 
/export/workspace   *(rw,sync,no_subtree_check,insecure,nohide) 

我加载 exportfs 文件,并重新启动 nfs-kernel-server:

# exportfs -vr
# service nfs-kernel-server restart

我现在转到我的客户端并检查哪些文件夹可以导出:

# showmount -e 192.168.145.131
Export list fo 192.168.145.131:
/export/workspace *
/export           *

但是当我尝试挂载该文件夹时,出现以下错误:

$ sudo mount -t nfs4 192.168.145.131:/workspace nfs/ -v
mount.nfs4: timeout set for Sat Apr 19 19:16:51 2014
mount.nfs4: trying text-based options 'addr=192.168.145.131,clientaddr=192.168.145.128'
mount.nfs4: mount(2): No such device
mount.nfs4: No such device

我也尝试过挂载/export/workspace/home/workspace但还是出现了同样的错误。我尝试modprobe在客户端和服务器上加载 NFS 模块,但客户端和服务器上都加载了该模块。

答案1

我在系统升级后遇到了这个错误mount.nfs4: No such device,后来重启就解决了。

看起来问题在于/usr/lib/modules/$(uname -r)/系统升级后删除了旧的内核模块目录,从而导致加载 nfs 模块失败。

答案2

3天后问题解决!!

我尝试从具有较新内核版本 (3.8) 的客户端安装 nfs4 服务器文件夹。我能够做到这一点。因此,我将配置文件复制/boot/configure-3.8-generic到我的/usr/src/.config,并启用选项Filesystems -> Network File Systems -> NFS3 client load as moduleNFS4 client加载为模块。

再次编译我的内核,创建initrd image、更新grub,现在我还可以从我的 2.6 内核客户端挂载服务器文件夹!

答案3

当我在主机上使用 Ubuntu 14.04 时,我在 Xen 虚拟主机上遇到了同样的问题,为运行 Ubuntu 18.04 的虚拟机提供了太旧的内核,并且没有旧内核的 /lib/modules/。

我更新了内核(以启动)来匹配虚拟主机内的版本(可用模块),现在内核模块可以正常加载,其他人也发现了这一点。

相关内容