第一、二期衔接——2.5 完善最小根文件系统—添加NFS网络文件系统

添加NFS网络文件系统

  • 硬件平台:韦东山嵌入式Linxu开发板(S3C2440.v3)
  • 软件平台:运行于VMware Workstation 12 Player下UbuntuLTS16.04_x64 系统
  • 参考资料:《嵌入式Linux应用开发手册》
  • 开发环境:Linux 2.6.22.6 内核、arm-linux-gcc-3.4.5-glibc-2.3.6工具链


一、前言

为了避免每次修改根文件系统都要重新烧录,所以引入NFS网络文件系统进行改进。

二、前期准备——开发版与电脑互ping

目的:开发板与电脑通过网线连接,设置开发版的ip地址与电脑的ip地址处于同一网段

1、查看服务器的ip

在两者通过网线连接后,网络适配器会弹出下面红色的网卡驱动如果没有,需要检查电脑网卡是否被禁用,或者网卡口硬件、网线是否有问题
电脑命令行输入ipconfig查看ip地址192.168.1.100
在这里插入图片描述
在这里插入图片描述

2、设置开发板的ip地址

进入根文件系统输入ifconfig eth0 192.168.1.1,后输入ifconfig查看是否修改成功。
在这里插入图片描述

3、互ping

输入ping 192.168.1.100,此时的地址为服务器地址。
在这里插入图片描述

三、启动后手工挂接NFS(麻烦)

需要满足两个条件:

  1. 服务器“允许”目录被挂接
  2. 开发板去挂接

那么下面我们就来实现这两个条件。

1、(虚拟机)服务器“允许”目录被挂接

需要继续在虚拟机,完善我们的根文件系统。

  1. /first_fs/etc目录下新建exports文件
    执行sudo vi /etc/exports
    输入/work/nfs_root/first_fs *(rw,sync,no_root_squash)
    在这里插入图片描述
  2. 重启NFS服务
    输入sudo /etc/init.d/nfs-kernel-server restart
    在这里插入图片描述
  3. 实验是否成功
    执行sudo mount -t nfs 192.168.1.2:/work/nfs_root/first_fs /mnt

这句话的作用是:把 first_fs 文件挂在到本机的/mnt 目录下,
注意:此时的IP地址为虚拟机的IP地址。
如下图,你没有错误信息就是可以挂载,即配置成功。

在这里插入图片描述
如果此时进入程序,出不来,可以按ctrl+C跳出。

2、开发板去挂接

开发版的根文件系统下操作。

  1. 根目录下新建/mnt目录,执行mkdir /mnt
  2. 执行mount -t nfs -o nolock 192.168.1.2:/work/nfs_root/first_fs /mnt
    在这里插入图片描述

3、结果

如果此时,你在虚拟机上的/work/nfs_root/first_fs目录下创建文件,在开发版/mnt目录下会立刻显现出来。
在这里插入图片描述

四、启动即使用NFS(方便)

实验发现,如果当开发版或者虚拟机关闭时,如果二者需要重新使用NFS,则
虚拟机需要执行sudo mount -t nfs 192.168.1.2:/work/nfs_root/first_fs /mnt
开发版根文件系统需要执行mount -t nfs -o nolock 192.168.1.2:/work/nfs_root/first_fs /mnt
很麻烦,所以可以修改开发板上的参数,使得开发版开机完毕后就可以直接使用NFS网络系统与虚拟机进行通信。

1、设置开发板的参数

在这里插入图片描述
完整指令如下:

set bootargs noiniritrd root=/dev/nfs nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>] ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf> console=ttySAC0

如果想看源码可以到linux-2.6.22.6\linux-2.6.22.6\Documentation\nfsroot.txt

nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]参数说明如下:

  • [<server-ip>:]服务器ip192.168.1.2
  • <root-dir>服务器文件目录/work/nfs_root/first_fs
  • [,<nfs-options>]标准NFS选项,可省略

ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>参数说明如下:

  • <client-ip>开发板ip192.168.1.1
  • <gw-ip>网关192.168.1.5
  • :<netmask>子网掩码255.255.255.0
  • <hostname>名字,可不填
  • <device>开发板上的网卡名字eth0
  • <autoconf>自动配置选项设为off

最终指令为:

set bootargs noiniritrd root=/dev/nfs nfsroot=192.168.1.2://work/nfs_root/first_fs ip=192.168.1.1:192.168.1.2:192.168.1.5:255.255.255.0::eth0:off console=ttySAC0

执行save
在这里插入图片描述

2、结果

重启开发板,尝试直接在虚拟机的/work/nfs_root/first_fs目录下新建文件,观察开发板上的根文件系统/mnt目录下是否出现该文件。
可以看到成功在启动时就可以直接使用NFS网络系统。
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值