AT91SAM9260——NFS挂载根文件系统
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挂载根文件系统相关推荐
- 用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 ...
- linux uboot nfs启动,嵌入式uboot,内核启动通过nfs挂载根文件系统
概述 嵌入式移植学习第二个内容,通过nfs挂载根文件系统.也是自己第一次做,也遇到了一些问题,但最后还是都解决了.在此记录一下整个流程,也希望能够给别的初学者一个参考. 系统环境 PC端 linux ...
- 【问题解决】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 ...
- linux开发 | nfs挂载根文件系统失败、处理过程
NFS挂载根文件系统失败 [ 5.552903] s5p-tvout s5p-tvout: hpd status is cable removed [ 5.563919] DBUG_PORT must ...
- 嵌入式(iMX6Q)TFTP加载 Linux 内核与设备树NFS挂载根文件系统
配置实现过程: 嵌入式(iMX6Q)TFTP加载 Linux 内核与设备树 注:bootm对应启动uImage,bootz对应启动zImage setenv bootcmd "tftp 0x ...
- 嵌入式linux开发,开机NFS文件系统启动,使用nfs挂载根文件系统
NFS( Network File System)即网络文件系统,是 FreeBSD 支持的文件系统中的一种,它允许网络中的计算机之间通过 TCP/IP 网络共享资源.在 NFS 的应用中, NFS ...
- 通过NFS挂载根文件系统——TQ2440
准备:首先在你的Linux上确定nfs挂载没问题,然后设置好你要挂载nfs的目录: vi打开/etc/exports,末尾添加 /opt/EmbedSky/root_nfs *(rw,sync,no ...
- Linux通过nfs挂载根文件系统失败:VFS: Unable to mount root fs via NFS, trying floppy.
简介: 本文主要介绍一种nfs挂载失败的情况,即在根文件系统中dev文件下没有设置console和null节点.如果你的文件系统中没有这种情况,这篇文章可能对你帮助不大.不过我也会将我在查找这个问题时 ...
- wlh- beagle bone 通过uboot tftp 加载zImage 设备树 及 nfs 挂载根文件系统
首先重启Ubuntu 服务器的 tftp 和nfs sudo /etc/init.d/xinetd restart 命令 重启 xinetd tftp服务 sudo /et ...
最新文章
- 今年央视春晚的创意担当,给了这个1岁的拓荒牛机器人
- 从零写一个编译器(一):输入系统和词法分析
- shell函数日期之间的操作(日期转秒,日期间隔秒,日期间隔天)
- linux race window,java开发环境(QTrace)
- java数组与以逗号分隔开的字符串的相互转换
- [转]HTTP协议之状态码详解
- 【黑马Bootstrap笔记】Bootstrap快速入门
- 云服务器真假辨别奥秘
- 【集成电路 - -芯片】
- 【游戏理论】游戏与游戏开发
- c++把字符串逆序输出
- 【死磕DDD】聊聊领域建模方法论
- 测绘摄影测量与遥感乙级资质申请流程及具体要求
- Windows设置访问白名单
- sqli-labs(50-53)
- 关于pycharm中代码为灰色以及如何调整代码检查级别的问题
- 游戏面试的维度与思考
- 没牙仔的世界(C++)
- SpringDataJPA(二):SpringDataJPA的运行原理以及基本操作
- workman定时任务队列雏形