NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

对于嵌入式Linux开发,通过NFS挂载根文件系统,根文件系统无需下载到FLASH( FLASH还需要先擦除再写入),可以直接保存在Linux主机,而且在Linux开发的驱动程序也无需下载到Linux开发板的FLASH,这使得开发十分方便快捷,下面记录了我自己通过NFS挂载根文件系统的过程。

Linux主机端:

  • CentOS 7.5 
  • RPC 主程序:rpcbind   yum install NFS rpcbind
  • NFS 主程序:nfs-utils  yum install nfs-utils
  • IP:172.215.0.224
  • 网关IP:172.215.0.1
  • 子网掩码:255.255.0.0

1.将制作好的根文件系统更名为NFS

注意: 根文件系统的配置文件中   vi etc/init.d/rcS  的ip地址一定要和后面设置u-boot环境变量中的一致 

就是linux内核中配置的开发板ip地址一定要和u-boot一致 

2.修改NFS配置文件       vi /etc/exports   

/NFS *(rw,sync,no_root_squash)

我这里写了*表示任何用户都能访问主机上的NFS文件夹 实际上可改为固定IP,只允许某一IP开放,例如

/NFS 172.215.0.128(rw,sync,no_root_squash)

或者

/mnt/rootfs_make/NFS 172.215.0.*(rw,sync,no_root_squash)

表示对1网段所有IP开放   

3.使配置生效  exportfs -r(没有任何提示)

4.重启RPC和NFS服务(有先后顺序,先启动RPC,再启动NFS)

service rpcbind restart
service nfs restart

5.查看NFS状态 ,确保为激活(active)状态

  service nfs status

active表示已激活

6.查看映射状态  showmount -e

可以看到,NFS文件夹已经被共享出去了,我的是所有用户都可访问

showmount -a 可以看哪些用户正在访问共享文件夹

可以看到,172.215.0.194的用户正在访问 NFS文件夹

7.关闭防火墙

首先查看防火墙状态,如下图,防火墙的active激活状态

对于centos7,执行systemctl stop firewalld 关闭防火墙

 

再次查看防火墙,已经被关闭了,但是这只是本次生效,重启后防火墙又会被打开。

执行systemctl disable firewalld 永久禁用

8.为保险起见,在本机挂载测试下:

 mount -t nfs localhost:/NFS/ /tmplocalhost:你的主机IP

我们将NFS挂载到本机/home文件夹,在/home也能看到NFS文件夹内容,挂载成功!

9.测试下服务器和开发板能否互相ping通 能互相Ping通再进行后面的步骤

====================================================================================================================================分隔线===================================================

 linux开发板端:

  • cpu:at91sam9260
  • 根文件系统:yaffs2
  • linux内核:2.6.38
  • ip:172.215.0.194

1.内核配置

  File systems--------

       Network File Systems------------

 File systems -----------

               Miscellaneous filesystems------------

 2.u-boot参数配置

u-boot环境变量配置

set bootargs noinitrd root=/dev/nfs nfsroot=172.215.0.224:/NFS ip=172.215.0.194:172.215.0.224:172.215.0.1:255.255.0.0::eth0:off init=/linuxrc console=ttyS0,115200

nfsroot=服务器ip:/共享文件夹      ip=开发板ip:linux服务器ip:网关ip:子网掩码:主机名:网卡:off

root        表示使用/dev/nfs这个设备作为根文件系统。
rw        表示可读可写的。
nfsroot        表示服务器中rootfs所在路径,注意需要跟上服务器的ip地址。
192.168.1.110    是板子启动之后的ip地址。
192.168.1.100    是nfs服务器的ip地址。
192.168.1.1    是板子网关地址。
255.255.255.0    是板子子网掩码。
eth0        表示板子上的网络设备。
off        表示关闭动态获取ip地址
--------------------- 

注意:eh0前面有两个冒号,那是因为这里还可以填写一个板子的主机名,这里没有设置,所以为空。

3.启动Linux开发板

可以看到挂载成功

AT91SAM9260——NFS挂载根文件系统相关推荐

  1. 用Qemu模拟vexpress-a9 (四) --- u-boot引导kernel,用nfs挂载根文件系统

    环境介绍 Win7 64 + Vmware 11 + ubuntu14.04 32 u-boot 版本:u-boot-2015-04 Linux kernel版本:linux-3.16.y busyb ...

  2. linux uboot nfs启动,嵌入式uboot,内核启动通过nfs挂载根文件系统

    概述 嵌入式移植学习第二个内容,通过nfs挂载根文件系统.也是自己第一次做,也遇到了一些问题,但最后还是都解决了.在此记录一下整个流程,也希望能够给别的初学者一个参考. 系统环境 PC端 linux ...

  3. 【问题解决】Linux通过nfs挂载根文件系统报错:VFS: Unable to mount root fs via NFS, trying floppy

    问题: NFS配置没问题:NFS服务开启与使用.目录挂载与卸载 使用 NFS 挂载文件系统的时候报错: [ 101.800373] VFS: Unable to mount root fs via N ...

  4. linux开发 | nfs挂载根文件系统失败、处理过程

    NFS挂载根文件系统失败 [ 5.552903] s5p-tvout s5p-tvout: hpd status is cable removed [ 5.563919] DBUG_PORT must ...

  5. 嵌入式(iMX6Q)TFTP加载 Linux 内核与设备树NFS挂载根文件系统

    配置实现过程: 嵌入式(iMX6Q)TFTP加载 Linux 内核与设备树 注:bootm对应启动uImage,bootz对应启动zImage setenv bootcmd "tftp 0x ...

  6. 嵌入式linux开发,开机NFS文件系统启动,使用nfs挂载根文件系统

    NFS( Network File System)即网络文件系统,是 FreeBSD 支持的文件系统中的一种,它允许网络中的计算机之间通过 TCP/IP 网络共享资源.在 NFS 的应用中, NFS ...

  7. 通过NFS挂载根文件系统——TQ2440

    准备:首先在你的Linux上确定nfs挂载没问题,然后设置好你要挂载nfs的目录: vi打开/etc/exports,末尾添加  /opt/EmbedSky/root_nfs *(rw,sync,no ...

  8. Linux通过nfs挂载根文件系统失败:VFS: Unable to mount root fs via NFS, trying floppy.

    简介: 本文主要介绍一种nfs挂载失败的情况,即在根文件系统中dev文件下没有设置console和null节点.如果你的文件系统中没有这种情况,这篇文章可能对你帮助不大.不过我也会将我在查找这个问题时 ...

  9. wlh- beagle bone 通过uboot tftp 加载zImage 设备树 及 nfs 挂载根文件系统

    首先重启Ubuntu 服务器的 tftp 和nfs sudo /etc/init.d/xinetd restart 命令              重启 xinetd  tftp服务 sudo /et ...

最新文章

  1. 今年央视春晚的创意担当,给了这个1岁的拓荒牛机器人
  2. 从零写一个编译器(一):输入系统和词法分析
  3. shell函数日期之间的操作(日期转秒,日期间隔秒,日期间隔天)
  4. linux race window,java开发环境(QTrace)
  5. java数组与以逗号分隔开的字符串的相互转换
  6. [转]HTTP协议之状态码详解
  7. 【黑马Bootstrap笔记】Bootstrap快速入门
  8. 云服务器真假辨别奥秘
  9. 【集成电路 - -芯片】
  10. 【游戏理论】游戏与游戏开发
  11. c++把字符串逆序输出
  12. 【死磕DDD】聊聊领域建模方法论
  13. 测绘摄影测量与遥感乙级资质申请流程及具体要求
  14. Windows设置访问白名单
  15. sqli-labs(50-53)
  16. 关于pycharm中代码为灰色以及如何调整代码检查级别的问题
  17. 游戏面试的维度与思考
  18. 没牙仔的世界(C++)
  19. SpringDataJPA(二):SpringDataJPA的运行原理以及基本操作
  20. workman定时任务队列雏形

热门文章

  1. 1 图片的重命名 2 对xml文件的图片来进行画框 3 制作coco数据集
  2. 7讲项目实战js第三区域响应式菜单续
  3. webApp移动端前端调试工具vconsole和eruda
  4. 【pyhton】【airtest自动化】利用pyhton写一个双十一淘宝领猫币的脚本解放双手吧
  5. Bresenham圆转换算法详解
  6. Android中EditText常用属性
  7. Java如何获取数组的长度及数组的遍历输出
  8. 北语20春计算机应用基础,2021年北语20春计算机应用基础作业1参考答案.docx
  9. JavaScript + DOM
  10. nginx设置目录白名单、ip白名单