嵌入式linux用nfs挂载ubuntu目录的配置步骤

在嵌入式Linux开发中,使用NFS挂载Ubuntu目录可以免去反复烧写文件的麻烦,是最高效的调试方式之一。整个过程主要分为在Ubuntu宿主机上配置NFS服务端 ,以及在开发板上挂载这两步。

整个流程的连接示意如下:

📝 第一步:Ubuntu宿主机配置NFS服务端

这是准备工作,需要在你的Ubuntu开发主机上设置好NFS共享。

  1. 安装NFS服务器:在Ubuntu终端中执行以下命令安装NFS内核服务:

    bash

    复制代码
    sudo apt-get update
    sudo apt-get install nfs-kernel-server
  2. 创建共享目录 :选择一个目录作为NFS共享的文件夹,例如在用户目录下创建一个nfs_share

    bash

    复制代码
    mkdir -p ~/nfs_share
  3. 配置共享目录 :编辑NFS的核心配置文件/etc/exports,添加刚刚创建的目录,并设置其访问权限。

    bash

    复制代码
    sudo vi /etc/exports

    在文件末尾添加以下内容(将 /home/your_username/nfs_share 替换为你的实际路径):

    bash

    复制代码
    /home/your_username/nfs_share *(rw,sync,no_root_squash,no_subtree_check)

    其中几个关键参数的含义:

    • *: 允许所有客户端访问。为了安全,也可以替换为开发板的IP地址。

    • rw: 客户端对该目录有读写权限。

    • no_root_squash: 允许开发板上的root用户享有本机的root权限,这对嵌入式开发很重要。

    • sync: 数据同步写入内存和硬盘,保证数据可靠性。

  4. 重启NFS服务:配置完成后,重启NFS服务使设置生效,并检查共享目录是否已成功发布。

    bash

    复制代码
    sudo /etc/init.d/nfs-kernel-server restart
    showmount -e

    如果showmount -e命令列出了你刚才配置的目录,说明服务端配置成功。

📲 第二步:开发板挂载NFS目录

完成Ubuntu端的配置后,就可以在开发板上进行操作了。在此之前,请务必确保开发板已经通过网线与Ubuntu主机连接到同一个局域网,并且可以互相ping通

  1. 创建本地挂载点 :在开发板的Linux系统中,创建一个目录作为挂载点,例如/mnt/nfs

    bash

    复制代码
    mkdir -p /mnt/nfs
  2. 执行挂载命令 :使用mount命令将Ubuntu的共享目录挂载到刚刚创建的目录上。你需要将命令中的<Ubuntu_IP>替换为你Ubuntu主机的实际IP地址。

    bash

    复制代码
    mount -t nfs -o nolock,vers=3 <Ubuntu_IP>:/home/your_username/nfs_share /mnt/nfs

    如果遇到问题,可以尝试调整NFS版本参数vers

    • 如果版本3不行,可以尝试vers=2

    • 如果遇到版本兼容性问题,也可以尝试vers=4

💎 进阶配置与问题排查

  1. 设置开机自动挂载

    如果希望开发板每次启动都能自动挂载NFS目录,可以将挂载命令写入开发板的/etc/fstab文件。在fstab文件末尾添加一行:

相关推荐
一直会游泳的小猫4 小时前
homebrew
linux·mac·工具·包管理
寒秋花开曾相惜4 小时前
(学习笔记)4.2 逻辑设计和硬件控制语言HCL(4.2.1 逻辑门&4.2.2 组合电路和HCL布尔表达式)
linux·网络·数据结构·笔记·学习·fpga开发
狂奔的sherry4 小时前
一次由 mount 引发的 Linux 文件系统“错觉”
linux·运维·服务器
小黑要努力5 小时前
智能音箱遇到的问题(一)
linux·运维·git
ch3nyuyu5 小时前
静态库和动态库的制作
linux·运维·开发语言
一口Linux6 小时前
Linux C编程 | 从0实现telnet获取程序终端控制权
linux·运维·c语言
willhuo6 小时前
Certbot工具在CentOS 7.9上申请和配置SSL证书完整教程
linux·centos·ssl
zhangrelay7 小时前
三分钟云课实践速通--大学物理--python 版
linux·开发语言·python·学习·ubuntu·lubuntu
风翼靓崽7 小时前
linux命令杂记 - 杂乱无章
linux·运维·服务器
handler017 小时前
Linux 进程探索:从 PCB 管理到 fork() 的写时拷贝
linux·c语言·c++·笔记·学习