NXP MCU 技术论坛
直播中

youzizhile

13年用户 645经验值
擅长:可编程逻辑 电源/新能源 模拟技术 测量仪表 EMC/EMI设计 嵌入式技术 存储技术 接口/总线/驱动 处理器/DSP 控制/MCU EDA/IC设计 连接器
私信 关注
[资料]

【AWorks试用体验】+NFS服务器搭建

本帖最后由 youzizhile 于 2015-8-18 15:53 编辑

6.4 NFS服务器搭建


6.4.1 NFS能做什么?

        在嵌入式Linux开发中,需要在Linux主机为目标机编写程序代码,然后编译程序,生成的程序是要传输到目标机上才能调试、运行。那么如何更快、更便捷地传输文件,将影响到开发工作的效率。NFS无疑是最好的选择。通过NFS服务,主机将用户指定的目录通过网络共享给目标机(和windows的文件网络共享类似)。目标机可以直接运行存放于Linux主机共享目录下的程序。这样调试程序时十分方便。

        NFS即网络文件系统(Network File-System),可以通过网络让不同机器、不同系统之间可以实现文件共享。通过NFS,可以访问远程共享目录,就像访问本地磁盘一样。NFS只是一种文件系统,本身并没有传输功能,是基于RPC(远程过程调用)协议实现的,采用C/S架构。


6.4.2 安装NFS软件包

        在终端输入下面命令安装NFS服务器:

vmuser@Linux-host ~$ sudo apt-get install nfs-kernel-server                        #安装NFS服务器端

vmuser@Linux-host ~$ sudo apt-get install nfs-common                                #安装NFS客户端


6.4.3 添加NFS共享目录

        安装完NFS服务器等相关软件后,需要指定用于共享的NFS目录,其方法是在“/etc/exports”文件里面设置对应的目录及相应的访问权限,每一行对应一个设置。下面介绍如何添加NFS共享目录。

        在终端输入“sudo vi /etc/exports”指令,如下所示:

vmuser@Linux-host:~$ sudo vi /etc/exports

[sudo] password for vmuser:

        “/etc/exports”文件打开后,文件内容如程序清单 6.2所示。


程序清单 6.2  /etc/exports文件内容

#  to NFS clients.  See exports(5).

#

# Example for NFSv2 and NFSv3:

# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)

#

# Example for NFSv4:

# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)

# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)


        若需要把“/nfsroot”目录设置为NFS共享目录,请在该文件末尾添加下面的一行:

/nfsroot       *(rw,sync,no_root_squash)

        其中“*”表示允许任何网段IP的系统访问该NFS目录。添加完成后,文件内容如程序清单 6.3所示。


程序清单 6.3  添加了NFS目录

#

# Example for NFSv2 and NFSv3:

# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)

#

# Example for NFSv4:

# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)

# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)

#

/nfsroot   *(rw,sync,no_root_squash)


        修改完成后,保存并退出“/etc/exports”文件。然后新建“/nfsroot”目录,并为该目录设置最宽松的权限:

vmuser@Linux-host:~$ sudo mkdir /nfsroot

vmuser@Linux-host:~$sudo chmod -R 777 /nfsroot

vmuser@Linux-host ~$ sudo chown –R nobody /nfsroot

        为了方便测试NFS是否挂载成功,可以在“/nfsroot”目录下创建NFS_Test目录用于测试。


6.4.4 启动NFS服务

        在终端中执行如下命令,可以启动NFS服务:

vmuser@Linux-host ~$ sudo /etc/init.d/nfs-kernel-server start

        执行如下命令则可以重新启动NFS服务:

vmuser@Linux-host ~$ sudo /etc/init.d/nfs-kernel-server restart

        执行启动命令后,其操作结果如图 6.18所示,表示NFS服务已正常启动。



图 6.18  启动NFS服务


        在NFS服务已经启动的情况下,如果修改了“/etc/exports”文件,需要重启NFS服务,以刷新NFS的共享目录。

        当然在下一次启动系统时,NFS 服务是自动启动的。


6.4.5 测试NFS服务器

        NFS服务启动后,可以在Linux主机上进行自测。测试的基本方法为:将已经设定好的NFS共享目录mount(挂载)到另外一个目录下,看能否成功。

        假定Linux主机IP为192.168.12.123,NFS共享目录为/nfsroot可使用如下命令进行测试:

vmuser@Linux-host~$ sudo mount -t nfs 192.168.12.123:/nfsroot  /mnt -o nolock

       NFS挂载成功,在/mnt目录下应该可以看到/nfsroot目录下的内容。


     本教程源于:创客社区http://maker.zlgmcu.com/



我的其他帖子:

1.【AWorks试用体验】+开发板靓照


回帖(4)

bojie1024

2015-8-19 17:35:14
能问一下,这个是怎么搞定的,这个密码是什么?我查很久都没有找到这个
vmuser@Linux-host:~$ sudo vi /etc/exports
[sudo] password for vmuser:
举报

youzizhile

2015-8-20 10:06:25
引用: bojie1024 发表于 2015-8-19 17:35
能问一下,这个是怎么搞定的,这个密码是什么?我查很久都没有找到这个
vmuser@Linux-host:~$ sudo vi /etc/exports
[sudo] password for vmuser:

vmuser是用户名,你使用自己的用户名就行,或者sudo su更换管理员密码
举报

bojie1024

2015-8-21 08:32:56
引用: youzizhile 发表于 2015-8-20 10:06
vmuser是用户名,你使用自己的用户名就行,或者sudo su更换管理员密码

这个昨天搞定了,是我把密码搞错了,导致一直不正确,谢谢,也在搭建服务器,有空交流下,取点经验
举报

youzizhile

2015-8-23 15:03:13
引用: bojie1024 发表于 2015-8-21 08:32
这个昨天搞定了,是我把密码搞错了,导致一直不正确,谢谢,也在搭建服务器,有空交流下,取点经验

好的,互相学习,共同进步
举报

更多回帖

发帖
×
20
完善资料,
赚取积分