• Linux挂载Windows端NFS服务(实现板端Linux与PC互传文件)


    Linux挂载Windows端NFS服务(实现板端Linux与PC互传文件)

    1. kernel编译时打开NFS客户端服务

    在宿主机打开kernel文件夹,先make clean,然后make menuconfig,进入配置界面:

    使用/查找NFS,找到Network File Systems配置项,如图这里是3,选择进入:

    image-20221118201346325

    进入后选择加载NFS client support模块,下面还有NFS server support模块,如果需要让系统作为服务端也可以打开。然后保存配置到.config,再make

    image-20221118201631610

    make完成后,将导出的镜像烧写到板端flash。

    2. Windows配置NFS服务端

    下载haneWIN NFS服务器,打开输出->编辑输出表文件:

    image-20221118202137973

    将原来的示例注释,选择本地PC上的共享文件夹,然后修改。

    # exports example
    
    # C:\ftp -range 192.168.1.1 192.168.1.10
    # c:\public -public -readonly
    # c:\tools -readonly 192.168.1.4
    D:\nfs -public -name:nfs
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    例如我这里的修改,将D:\nfs文件夹共享,并且指定所有用户可访问,对外名称为nfs。

    设置完成后,如果还需要windows作为客户端,还需要去控制面板->Windows功能->NFS服务,全部勾选,如图:

    image-20221118202712636

    然后重启NFS服务器,注意,这里必须全部重启,使用界面里的重启服务器按钮起不到该作用!!

    image-20221118202810345

    我们打开开始菜单所有应用,找到重启所有服务这个脚本,先打开文件位置,然后在资源管理器用管理员权限执行。如果不用管理员会报没有权限,无法重启服务。

    image-20221118204042024

    至此Windows端的配置就完成了。

    3. Linux端进行挂载

    我们回到板端系统,首先添加网关,这里的IP是Windows主机的IP:

    route add default gw 192.168.XXX.XXX
    
    • 1

    添加完成后进行挂载,挂载的命令如下:

    mount -t nfs -o nolock 192.168.88.20:/nfs /mnt/
    
    • 1

    正常如果挂载完成的话,就可以在挂载的目录下看到我们Windows文件夹下的内容了。

    4. 设置开机挂载

    因为板端没有systemctl,直接将上述mount指令添加到init.d目录下设置开机自动执行即可。

    5. 常见问题

    1. mount报错Device or resource busy

    image-20221118204243833

    因为/mnt目录被占用,需要先用umount释放

    2. mount报错No such file or directory

    image-20221118205547883

    配置Windows端的NFS服务错误,或者没有成功重启NFS服务端。

    3. mount挂载一直卡住无反应:

    image-20221118204611001

    a. 首先确保nolock参数添加,避免阻塞主进程

    b. 然后可以尝试Windows主机和Linux板端互相ping一下IP,查看是否能ping通,如果板端ping不通主机:

    image-20221118204854154

    但主机端ping的通板端:

    image-20221118204940064

    大概率是Windows防火墙的原因,进入Windows安全中心,关闭防火墙即可:

    image-20221118205027033

    当然也可以选择放行端口,这样更安全,但是要麻烦点。

    一般这么操作之后基本就可以了:

    image-20221118205132859

  • 相关阅读:
    MySQL中explain的用法
    【高并发】通过源码深度解析ThreadPoolExecutor类是如何保证线程池正确运行的
    Java并发(二十)----synchronized原理进阶
    物联网开发笔记(17)- 使用Micropython开发ESP32开发板开发环境准备
    9、【Qlib】【主要组件】投资组合策略:投资组合管理
    winform性能内存泄露检测工具
    跨链协议支持Sui的资产所有权理念,助力资产在不同链之间流通
    基于Java新枫之谷游戏攻略设计实现(源码+lw+部署文档+讲解等)
    华为USG6000防火墙nat / nat server 配置(多出口情况)
    【芯片前端】可能是定向验证的巅峰之作——auto_testbench
  • 原文地址:https://blog.csdn.net/qq_42059060/article/details/127929609