nfs,即网络文件系统,非常适用于Linux与Linux之间进行文件共享,在嵌入式开发中,我们会经常在宿主机上开启nfs服务,而后在目标板上执行mount命令将宿主机共享出来的文件夹挂载到目标板上,这样就非常方便地借助网络实现宿主机与目标板之间进行文件上传与下载。本文将详细介绍在Ubuntu环境下搭建nfs服务,并实现在嵌入式目标板上访问Ubuntu内的文件。
Ubuntu Desktop amd64 18.04 LTS(Vmware Workstation 14 Pro 14.1.1 build-7528167)
nfs-kernel-server 1:1.3.4-2.1ubuntu5
sudo apt install nfs-kernel-server
执行命令:
sudo vim /etc/exports
在最后新增一行:
/works *(rw,sync,no_root_squash,no_subtree_check)
如图所示:
执行命令:
sudo /etc/init.d/nfs-kernel-server restart
在Linux目标板上或其他Linux主机上执行命令:
mount -t nfs -o nolock,tcp,vers=4 172.18.18.4:/works /mnt/nfs/
其中,“172.18.18.4”是nfs服务器的IP,“/works”是nfs服务器配置文件(/etc/exports)里的共享目录,“/mnt/nfs”是nfs客户端的路径。
如图所示,位于nfs服务器的文件“/works/nfs_server_test_file”同步出现在了nfs客户端(Linux目标板)上面“/mnt/nfs/nfs_server_test_file”。
打开Windows命令提示符,执行命令:
mount -o nolock,tcp,vers=4 \\172.18.18.4\works *
再打开Windows资源管理器,发现在“网络位置”栏下多出来了一个“Y:”盘:
注:由于Windows对nfs支持可能不太好,建议Windows访问Linux共享文件时使用samba:
Ubuntu文件共享之smb/cifs——安装smb服务