NFS搭建

从nfs的原理来看需要的套件有3个,一个是nfs核心,一个是rpc,另外一个就是portmap 。
对ubuntu而言,这三个套件包含在两个套件当中,一个是nfs核心,名为nfs-kernel-server,另外一个套件是rpcbind,它不仅包括RPC还包括portmap套件。
安装:rpcbind

$sudo apt-get install rpcbind

安装nfs-kernel-server

$sudo apt-get install nfs-kernel-server

在服务器端Linux主机中检查NFS服务状态:

# service nfs-kernel-server status
nfsd running

开始创建NFS的共享文件夹,并修改/etc/exports 文件(有的系统安装rpcbind和nfs-kernel-server之后会自动生成/etc/exports 文件,有的不会):

# mkdir /nfsfile
# echo "/nfsfile 192.168.1.141(rw,sync,no_root_squash)" > /etc/exports
# cat /etc/exports
/nfsfile 192.168.1.134(rw,sync,no_root_squash)

这里我们创建了/nfsfile目录用于NFS共享,并在/etc/exports文件中将共享属性IP设置为192.168.1.141(开发板上的IP,在/dev/eth0-setting里面可以修改IP,修改后重启即可)的用户可读写,并且由no_root_aquash指定信任客户端,这样我们可以以root权限在开发板上对/nfsfile目录进行可读写操作。rw权限是可擦写,还有ro只读,sync代表数据会同步写入到内存与硬盘中,async则代表数据会先暂存于内存当中,而非直接写入硬盘,开放客户端使用root身份来操作服务器的文件系统,那么开no_root_squash才行,root_squash不允许。(更多配置文件的权限参数和IP(主机名)配置方式请参考鸟哥的私房菜-----Linux服务器架设篇 P400页)。

服务器启动NFS服务两种方法:
第一种:

# service nfs-kernel-server restart/start
 * Stopping NFS kernel daemon                                                                                                                                    [ OK ] 
 * Unexporting directories for NFS kernel daemon...                                                                                                              [ OK ] 
 * Exporting directories for NFS kernel daemon...                                                                                                                       exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "192.168.1.141:/nfsroot/".
  Assuming default behaviour ('no_subtree_check').
  NOTE: this default has changed since nfs-utils version 1.0.x

                                                                                                                                                                 [ OK ]
 * Starting NFS kernel daemon                                                                                                                                    [ OK ]

第二种:

# service nfs-kernel-server status
nfsd running
root@ubuntu:/home/ice# sudo /etc/init.d/portmap restart
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service portmap restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop portmap ; start portmap. The restart(8) utility is also available.
portmap stop/waiting
portmap start/running, process 31525

# sudo /etc/init.d/nfs-kernel-server restart
 * Stopping NFS kernel daemon                                                                                                                                    [ OK ] 
 * Unexporting directories for NFS kernel daemon...                                                                                                              [ OK ] 
 * Exporting directories for NFS kernel daemon...                                                                                                                       exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "192.168.1.141:/nfsroot/".
  Assuming default behaviour ('no_subtree_check').
  NOTE: this default has changed since nfs-utils version 1.0.x

                                                                                                                                                                 [ OK ]
 * Starting NFS kernel daemon                                                                                                                                    [ OK ] 

接下来在服务器上mount来测试:

# touch /nfsfile/test    //test 为测试文件
# ls /mfsfile
test
# mount 192.168.1.140:/nfsfile /mnt/
# ls /mnt
test

mount时的ip地址192.168.1.140就是Linux主机的IP地址。开发板的IP地址是192.168.1.141,和服务器在同一网段,连上网线之后它们就可以互相ping通了。

接着可直接在服务器上通过telnet的方式连接到开发板,并进行Mount操作。注意:telnet时需要开发板的帐号、密码。帐号默认是root,密码可以在开发板上通过passwd命令修改。
telnet登录之后就可以挂载了:

# mount 192.168.1.140:/nfsfile /mnt
# ls /mnt
test

这时候可能会出现错误:

mount: mounting 192.168.1.140:/nfsfile on /mnt failed: Connection refused

这时挂载命令改为:

mount -t nfs -o nolock 192.168.1.140:/nfsfile /mnt

其他问题:

1.出现问题:

reason given by server: Permission denied

解决:

服务器端启动一定要sudo启动,不然启动失败,服务拒绝

2.出现问题:

mount: mounting 192.168.1.140:/nfsroot on /mnt failed: Device or resource busy

解决:

mount上之后在进行mount命令会出现此提示,设备正在运行,不用再次mount

如果想再次mount可以先umount /mnt/

 

转载于:https://my.oschina.net/u/2515635/blog/787028

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值