nfs挂载依赖 mount nfs4 ....No such file or directory

转载自:

https://zhuanlan.zhihu.com/p/434209418

https://blog.csdn.net/yusiguyuan/article/details/11515715

 

============

 

# 安装nfs-utils rpcbind
yum -y install nfs-utils rpcbind

# 创建nfs目录
mkdir -p /nfs/data/

# 编辑export文件 # vim /etc/exports
/nfs/data *(rw,fsid=0,no_root_squash,sync)

# 使得配置生效
exportfs -r

 

# 查看生效
exportfs

 

# 启动rpcbind、nfs服务
systemctl start rpcbind && systemctl enable rpcbind   #端口是111
systemctl start nfs && systemctl enable nfs           # 端口是 2049 

 

# 查看rpc服务的注册情况
rpcinfo -p localhost

# showmount测试
showmount -e ip(ip地址)

 

=====================

 

今天用nfs的时候遇到奇怪的问题:

先是:
bee@Thinkpad-x201:/mnt$ sudo mount 192.168.1.177:/share/mnt/test/
mount.nfs: access denied by server while mounting192.168.1.177:/share

发现是nfs版本的问题,我是通过apt-get install安装的nfs,估计是更新到了nfs v4版本,所以需要加上特殊的参数-t nfs4

但加上-t nfs4参数后server没有拒绝,但是却又有一个错误:
bee@Thinkpad-x201:/mnt$
sudo mount -t nfs4192.168.1.177:/share /mnt/test/
mount.nfs4: 192.168.1.177:/share failed, reason given by server: Nosuch file or directory

这就奇怪了,明明有文件有目录,怎么会视而不见呢?

原来针对NFS4,exports需要一个新的参数fsid,
如我的exports:

/home/bee *(rw,fsid=0,sync,no_root_squash)

 

查看exports的帮助:
bee@Thinkpad-x201:~$man exports


fsid=num|root|uuid
NFS needs to be able to identify each filesystem that it
exports. Normally it will use a UUID for thefilesystem (if the
filesystem has such a thing) or the device number ofthe device
holding the filesystem (if the filesystem is stored onthe
device).

As not all filesystems are stored on devices, and not all
filesystems have UUIDs, it is sometimes necessaryto explicitly
tell NFS how to identify a filesystem. Thisis done with the
fsid= option.

For NFSv4, there is a distinguished filesystem which is theroot
of all exported filesystem. This is specifiedwith fsid=root or
fsid=0 both of which mean exactly the same thing.

Other filesystems can beidentified with a small integer, or a
UUID which should contain 32 hex digits and arbitrary punctua‐
tion.

Linux kernels version 2.6.20and earlier do not understand the
UUID setting so a small integer must be used ifan fsid option
needs to be set for suchkernels. Setting both a small number
and a UUID is supported so the same configuration can be madeto
work on old and new kernels alike.


在exports增加fsid这个key word后,
bee@Thinkpad-x201:~$exportfs -r
bee@Thinkpad-x201:/mnt$ sudo mount -t nfs4192.168.1.177:/share /mnt/test/
bee@Thinkpad-x201:/mnt$

OK了......

posted @ 2023-03-10 18:52  larybird  阅读(905)  评论(0编辑  收藏  举报