我正在尝试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 module
并NFS4 client
加载为模块。
再次编译我的内核,创建initrd image
、更新grub
,现在我还可以从我的 2.6 内核客户端挂载服务器文件夹!
答案3
当我在主机上使用 Ubuntu 14.04 时,我在 Xen 虚拟主机上遇到了同样的问题,为运行 Ubuntu 18.04 的虚拟机提供了太旧的内核,并且没有旧内核的 /lib/modules/。
我更新了内核(以启动)来匹配虚拟主机内的版本(可用模块),现在内核模块可以正常加载,其他人也发现了这一点。