Page tree
Skip to end of metadata
Go to start of metadata

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

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


安装NFS软件包


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

$ sudo apt-get install nfs-kernel-server nfs-common


添加NFS共享目录

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

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

$ sudo vi /etc/exports
[sudo] password for i2somdev:


打开“/etc/exports”文件后,编辑内容如下:

# /etc/exports: the access control list for filesystems which may be exported
#		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)
/srv/nfshare       192.168.0.0/255.255.0.0(rw,sync,no_subtree_check,root_squash)
#
# 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)
#


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

$ sudo mkdir /srv/nfshare
$ sudo chmod -R 777 /srv/nfshare

然后启动PC上的NFS服务

$ sudo service nfs-kernel-server start


开发板挂载NFS目录

在开发板上就可以挂载PC的NFS目录:

# mount -t nfs -o nolock 192.168.1.100:/srv/nfshare /mnt

常见问题

Q.挂载时提示"Permission denied"错误

A:检查PC和开发板网络是否连通。检查PC上NFS服务的/etc/export文件中的目录是否正确,IP地址配置是否正确。

  • No labels