WIN11搭建NFS-Server在开发板与Linux间共享数据
本文通过使用NFS Server工具在WIN11上搭建NMS Server,打通Linux开发环境到嵌入式板子之间的通路,优化Linux服务器与嵌入式板子之间的多次SCP拷贝操作。
Windows下的NFS Server工具来自于Networking Software for Windows (hanewin.net)
目的
在做嵌入式Linux开发时,需要在通过VPN+SSH远程连接到Linux服务器,在服务器上编写代码。再通过WAN口网络连接到板子上,板子与Linux服务器不在同一网段。
正常情况下编写好的程序先要通过SCP拷贝到当前电脑上,然后再通过SCP从当前电脑拷贝到板子上。
准备材料
Networking Software for Windows (hanewin.net)
该软件实现了一个适用于所有Windows平台的多线程NFS服务器。
支持功能
- NFS 3、NFS 2、WebNFS和NLM协议。
- UDP和TCP连接。
- Unix软链接(符号链接)。
- NTFS卷上的Unix硬链接。
- 如果支持符号链接,可以使用Windows重解析点。
- 块设备和字符设备的i节点。
- 作为Windows服务和Windows应用程序实现。
- 在Windows 7及更高版本中,使用NTFS文件ID作为i节点。
安装程序包含32位软件和64位版本。
NFS Server服务器版作为后台服务在Windows XP/VISTA/20xx/7/8/10/11上运行。SunPRC PortMap作为服务的守护程序。
NFS Server应用程序版是一个便携式的Windows应用程序,内置SunRPC Portmapper。
可以使用NFS 3与NFS 2在基于TCP或UDP基础上与NFS Server建立连接。
支持多线程,UDP连接时可以配置线程数量,使用TCP时每个线程都会建立一条连接。
安装配置
安装流程简单,不多赘述,配置流程如下:
配置说明
- 盘符应该使用大写字母,因为默认情况下(选项设置),它们被映射为小写字母给客户端。
- 选项
-range
限制访问到指定的地址范围,IP地址成对地解释为from-to范围。 - 选项
-readonly
禁止创建/写入/删除。 - 选项
-lowercase
将所有文件名映射为小写。 - 选项
-name:<x>
使<x>
为客户端挂载的替代名称。 - 选项
-mapall:<uid>[:<gid>]
: 所有Unix用户ID和组ID都映射到指定的用户ID和组ID。 - 选项
-alldirs
允许客户端挂载文件夹或任何子文件夹。 - 选项
-public
:仅对此条目和子目录启用WebNFS访问。 - 使用UNC路径指定访问远程驱动器。
- 没有盘符的隐藏卷可以通过卷GUID进行挂载
-name参数示例
挂载命令:
sudo mount -t nfs 192.168.72.1:/e/FTP ./nfstemp/ # 正常挂载命令
sudo mount -t nfs 192.168.72.1:/nfstemp ./nfstemp/ # 启用
-range参数错误示例
挂载示例:
$ sudo mount -t nfs 192.168.72.1:/nfstemp ./nfstemp/
mount.nfs: access denied by server while mounting 192.168.72.1:/nfstemp
$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.72.128 netmask 255.255.255.0 broadcast 192.168.72.255
inet6 fe80::20c:29ff:fe0b:4f93 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:0b:4f:93 txqueuelen 1000 (Ethernet)
RX packets 369525 bytes 460287157 (460.2 MB)
RX errors 0 dropped 2 overruns 0 frame 0
TX packets 61918 bytes 22758984 (22.7 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
$
由于Linux环境IP不在配置范围内,因此提示挂载失败,没有访问权限。
-alldirs示例
挂载示例
# 从根目录挂载并查看内容
$ sudo mount -t nfs 192.168.72.1:/nfstemp ./nfstemp/
$ ls nfstemp/nfs-subdir/
a
# 从子目录开始挂载并查看内容
$ sudo mount -t nfs 192.168.72.1:/nfstemp/nfs-subdir nfs-subdir/
$ ls nfs-subdir/
a
参考文档
- 原文作者:生如夏花
- 原文链接:https://blduan.top/post/%E5%B7%A5%E5%85%B7%E4%BD%BF%E7%94%A8/win11%E6%90%AD%E5%BB%BAnfs-server%E5%9C%A8%E5%BC%80%E5%8F%91%E6%9D%BF%E4%B8%8Elinux%E9%97%B4%E5%85%B1%E4%BA%AB%E6%95%B0%E6%8D%AE/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。