ubuntu14.04下网络文件系统NFS挂载

    刚开始学习linux驱动,环境搭建过程中遇到诸多问题,然身边无可请教之人,只得百度别人的解决方法,然由于鄙人水平有限以及环境差异,并未立刻解决问题,经过多番尝试,终于摸索成功,现把详细过程罗列如下:

1. 挂载网络文件系统即nfs(network file system),以下定义来自百度百科:

    NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

2. 工欲善其事必先利其器,先需要安装nfs服务,同时还需要安装portmap(注意新版本中已被rpcbind代替),执行如下命令:

# apt-get install nfs-kernel-server
# apt-get install portmap   或者   # apt-get install rpcbind 
如果已经安装rpcbind再去安装portmap,就会提示如下:
user@user-PC:~$ sudo apt-get install portmap
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'rpcbind' instead of 'portmap'
rpcbind is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 262 not upgraded.
这里对portmap做一个介绍,当然也是来自网络: portmap进程的主要功能是把RPC程序号转化为Internet的端口号
Remote Procedure Call, RPC
当一个RPC服务器启动时,会选择一个空闲的端口号并在上面监听(每次启动后的端口号各不相同),同时它作为一个可用的服务会在portmap进程注册。一个RPC服务器对应惟一一个RPC程序号,RPC服务器告诉portmap进程它在哪个端口号上监听连接请求和为哪个RPC程序号提供服务。经过这个过程,portmap进程就知道了每一个已注册的RPC服务器所用的Internet端口号,而且还知道哪个程序号在这个端口上是可用的。portmap进程维护着一张RPC程序号到Internet端口号之间的映射表,它的字段包括程序号、版本号、所用协议、端口号和服务名,portmap进程通过这张映射表来提供程序号-端口号之间的转化功能
如果portmap进程停止了运行或异常终止,那么该系统上的所有RPC服务器必须重新启动。首先停止NFS服务器上的所有NFS服务进程,然后启动portmap进程,再启动服务器上的NFS进程。
portmap只在第一次建立连接的时候起作用,帮助网络应用程序找到正确的通讯端口,但是一旦这个双方正确连接,端口和应用就绑定,portmap也就不起作用了。但对其他任何第一次需要找到端口建立通讯的应用仍然有用。
简单的说,portmap就是应用和端口的婚姻介绍人,双方成事了以后,媒婆就没用了。

3. 然后查看安装结果:

# rpm -qa | grep nfs
# rpm -qa | grep portmap   或者 #rpm -qa | grep rpcbind

4. 接下来为nfs建一个共享目录,并设置权限,具体目录可以自行修改

# mkdir /mnt/nfs
# chmod -R 777 /mnt/nfs

5. 设置好共享目录后,修改配置文件 ,使挂载目录指向刚刚建立的共享目录,执行如下命令打开并编辑配置文件:

# vim /etc/exports

在配置文件末尾加上共享目录和可访问该目录的客户端ip和权限,格式如下:

<输出目录> [客户端1 选项(权限...)]  [客户端2 选项(权限....)]...

# /mnt/nfs 192.168.1.*(rw,sync,no_root_squash)

其中*表示192.168.1.x这个ip段都可以挂载该共享目录

6. 配置文件修改好后重启nfs服务

# /etc/init.d/rpcbind restart
# /etc/init.d/nfs-kernel-server restart  
或者 
# service rpcbind restart
# service nfs-kernel-server restart

7. nfs重启成功后就算nfs配置完成了,可以先进行本地测试,看是否有效

1、先建一个本地测试文件夹
# mkdir /home/username/nfs_test
# chmod -R 777 /home/username/nfs_test
2、将nfs共享文件夹挂载到该测试目录下,其中192.168.1.x表示主机的本地ip地址
# mount -t nfs -o nolock 192.168.1.x:/mnt/nfs /home/username/nfs_test
3、在nfs共享文件夹下建一个测试文件
# vim /mnt/nfs nfs_test_file.c
4、 保存该文件,然后在测试文件夹下查看是否存在相同的文件,如果有,nfs共享目录就挂载成功啦!
# ls /home/username/nfs_test


8. 其他客户端挂载该共享目录

# mount -t nfs -o nolock 192.168.1.x:/mnt/nfs /mnt

其中192.168.1.x表示服务器的ip地址

9. 有时单板挂载nfs文件系统时,会出现挂载成功,但是访问服务器上的文件时服务器无响应的情况(nfs: server 192.168.x.x not responding, still trying), 首先查看 /etc/init.d/rcS文件配置,主要看ip地址是否合理,如果ip段不匹配,用ifconfig eth0 x.x.x.x重新配置.

# cat /etc/init.d/rcS 
#!/bin/sh
ifconfig eth0 192.168.1.17

mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
if [ ! -e /etc/pointercal ] 
then
/bin/ts_cal.sh
fi
/bin/qpe.sh &

如果还有问题的话,需考虑到服务器和单板之间网络速度不匹配所致, 单板挂载nfs文件系统时按如下格式:

mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 192.168.1.100:/home/usrname/mnt /mnt

 over~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~









  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值