报错:mount.nfs: access denied by server while mounting localhost:/root/nfs_root
挂载的时候,挂载不上。提示访问拒绝。原因是如果挂载在root目录下,默认root目录只有管理员权限,需要执行:chmod 777 root修改权限解决问题。
mount -t nfs -o nolock localhost:/root/XXX /mnt/
参考博客:
http://blog.csdn.net/chenqiai0/article/details/8535467
http://blog.csdn.net/imxiangzi/article/details/7465560
---------------------------------------------------------------------------------------------------------
一、安装NFS
# sudo apt-get install nfs-kernel-server
同时会有两个软件包nfs-common和portmap被安装上
二.在/建立共享项目nfst
# mkdir nfs_shared
# chmod 777 -R nfs_shared/
保证使用者都能够读、写、执行
三.修改NFS配置文件
lingd@ubuntu:~$ vi /etc/exports
内容为:
/home/nfst_shared 192.168.0.*(rw,sync,no_root_squash,no_subtree_check)
其中:
/home/nfst_shared ---要共享的目录
192.168.0.*---允许访问的网段,也可以是ip地址、主机名(能够被服务器解析)、
*(所有人都能访问)
(rw,sync,no_root_squash,no_subtree_check)---
rw:读/写权限
sync:数据同步写入内存和硬盘
no_root_squash:服务器允许远程系统以root特权存取该目录
no_subtree_check:关闭子树检查
其他选项可以通过man exports查阅man文档
四、启动服务
重启portmapper(端口映射)服务
lingd@Ubuntu:~$ sudo service portmap restart
portmap start/running, process 550
重启NFS服务
lingd@ubuntu:~$ sudo service nfs-kernel-server restart
* Stopping NFS kernel daemon [ OK ]
* Unexporting directories for NFS kernel daemon... [ OK ]
* Exporting directories for NFS kernel daemon... [ OK ]
* Starting NFS kernel daemon [ OK ]
五、测试
1、测试Ubuntu nfs
此时可以运行以下命令来显示一下共享出来的目录:
$showmount -e
2、本机挂载
# ls /home/nfst_shared/ #被挂载的文件夹下面的东西
cross-3.4.1.tar.bz2 linux-2.6.12 upload
download msap VMwareTools-8.1.3-203739.tar.gz
DSDT_2[1].8b.zip ntp vmware-tools-distrib
DSDT_2.8b protocol-converter 安装包
# mkdir /mnt/nfs_test
# ls /mnt/nfs_test/ #空白的
# sudo mount -t nfs -o nolock localhost:/home/nfs_shared /mnt/nfs_test/
# ls /mnt/nfs_test/ #看到了和/home/nfst_shared/目录下的文件一样,说明挂载成功
cross-3.4.1.tar.bz2 linux-2.6.12 upload
download msap VMwareTools-8.1.3-203739.tar.gz
DSDT_2[1].8b.zip ntp vmware-tools-distrib
DSDT_2.8b protocol-converter 安装包
# sudo umount /mnt/nfs_test #解除
# ls /mnt/nfs_test/ #空白的
3、开发板挂载
lingd@Ubuntu:~$ telnet 192.168.0.25 2009
Trying 192.168.0.25...
Connected to 192.168.0.25.
Escape character is '^]'.
(none) login: root
Password:
~ # mkdir /mnt/nfs_shared_client
~ # ls /mnt/nfs_shared_client/
~ # mount -t nfs -o nolock 192.168.0.26:/home/nfs_shared /mnt/nfs_shared_client
~ # ls /mnt/nfs_shared_client/
cross-3.4.1.tar.bz2 linux-2.6.12 upload
download msap VMwareTools-8.1.3-203739.tar.gz
DSDT_2[1].8b.zip ntp vmware-tools-distrib
DSDT_2.8b protocol-converter 安装包
~ # umount /mnt/nfs_shared_client
~ # ls /mnt/nfs_shared_client/
~ #
六、挂载nfs文件系统失败的原因
1、nfs错误信息
Too many levels of remote in path:试图挂载一个存在的文件系统
Permission denied:NFS服务器不让客户机挂接,也可能是因为用户在服务器上不存在
No such host:通常是DNS配置错误
No such file or directory:通常是访问的目录不存在
NFS server is not responding:通常是NFS已经超过负载或者NFS已经停止工作
Stale file handle:在NFS客户端关闭之前客户端访问的文件被删除
Fake hostname:Forward和reverse的DNS记录在NFS客户端下不存在
2、挂载nfs文件系统失败的原因
(1)主机和网络不通:看看网线连接、主机和开发板ip是否在同一网段、防火墙有没有关闭等。
不仅vmware中linux的防火墙要关闭,vmware外xp的防火墙也要关闭,我就因为xp中的eset杀毒软件的防火墙使nfs无法挂载(可以挂本机,无法挂远程),折腾了一天,后来才发现是xp中的防火墙搞的鬼!
(2)使用的mount命令不正确。可以参照上面的例子改一下;或者
man nfs查阅一下nfs的man文档,里面有nfs中mount的使用介绍和选项解释
(3)nfs配置文件/etc/exports配置不正确。可以参照上面的例子改一下;或者
man exports查阅一下/etc/exports的man文档
(4)必要时重新启动NFS和portmap服务。
sudo service portmap restart
sudo service nfs-kernel-server restart
(5)内核不支持NFS和RPC服务(可能需要重新配置、编译、烧写内核)。
普通的内核应有的选项为CONFIG_NFS_FS=m、CONFIG_NFS_V3=y、CONFIG_ NFSD=m、CONFIG_NFSD_V3=y和CONFIG_SUNRPC=m。
rpcinfo命令用于显示系统的RPC信息,一般使用-p参数列出某台主机的RPC服务。rpcinfo -p命令检查服务器时,应该能看到portmapper、status、mountd、nfs和nlockmgr。用该命令检查客户端时,应该至少能看到portmapper服务(开发板可能不带该命令)。
由rpcinfo -p可知,nfs使用的port为2049,portmapper使用111port。
五、nfs相关的配置文件与命令
1、
/etc/exports
NFS的主要配置文件,不过系统并没有默认值,所以这个文件不一定会存在(需要自己建立)。
2、
/usr/sbin/exportfs
用于维护NFS共享资源的命令,用在nfs server端。修改/etc/exports后,只要使用exportfs重新扫瞄一次 /etc/exports,重新将设定加载即可,并不一定要重启nfs服务
命令格式: exportfs [-aruv]
参数说明如下。
(1)-a:全部挂载或卸载(export or unexpect)/etc/exports文件内的目录。
(2)-r:重新挂载(reexport)/etc/exports中的目录,并将/var/lib/nfs/etab中的内容与/etc/exports同步。
(3)-u:卸载某些目录。
(4)-v:显示exportfs处理信息。
3、
/usr/sbin/showmount
用于查看指定主机NFS共享出来的目录资源,主要用在Client端。
命令格式: showmount [-ade] hostname/服务器ip地址
参数说明如下。
(1)-a或-all:以host:dir格式显示客户主机名和挂载的目录。
(2)-d或-directories:仅显示被客户挂载的目录名。
(3)-e或-exports:显示指定NFS服务器的nfs共享目录。
========================================
ubuntu配置NFS
http://blog.sina.com.cn/s/blog_6524fd1f0100r4hm.html
Ubuntu配置NFS的Client端
http://hi.baidu.com/mvp_xuan/blog/item/5f467e58792c8d3d2834f0e2.html
Ubuntu配置网络文件共享服务器NFS
http://www.ylmf.net/ubuntu/tips/201010267655.html