nfs挂载文件系统设置及使用

在烧写了 u-boot 之后,为了减少烧写根文件系统、调试程序之痛苦,本文档介绍如何通过 tftp 下载内核,nfs 服务挂接根文件系统启动系统,不用每次都烧到开发板上。

一、NFS 服务挂载根文件系统

1Linux 服务器端 NFS 服务器的配置

以 root 身份登陆 Linux 服务器,编辑/etc 目录下的共享目录配置文件 exports,指定共享目录及权限等。执行如下命令编辑文件/etc/exports

#sudo apt-get install nfs-kernel-server

#vi /etc/exports

在该文件里添加如下内容:

/tftpboot/rootfs 192.168.0.*(rw,sync,no_root_squash)

然后保存退出(添加的内容意思是:允许 ip 地址范围在192.168.0.*的计算机以读写的权限来访问/tftpboot/rootfs 目录,/tftpboot/rootfs 也称为服务器输出共享目录)。括号内的参数意义描述如下:

1rw:读/写权限,只读权限的参数为 ro

2sync:数据同步写入内存和硬盘,也可以使用 async,此时数据会先暂存于内存中,而不立即写入硬盘;

3no_root_squash: NFS 服务器共享目录用户的属性,如果用户是非 root,那么对于这个共享目录来说就具有 root 的权限;

如果用户想修改/etc/exports 以修改后或添加其它共享目录,可执行命令

1#sudo exportfs -rv 使/etc/exports 文件生效

2)接着执行如下命令,启动端口映射:

#/etc/init.d/portmap start(或:#sudo service portmap start

3)最后启动 NFS 服务,此时 NFS 会激活守护进程,然后就开始监听 Client 端的请求:

#/etc/init.d/nfs-kernel-server restart(或:#sudo service nfs-kernel- server

restart

Linux 服务器端 NFS 服务器的配置到此就已经配置好了。

二、开发板启动参数设置

当在第一步启动 Linux 主机 NFS 服务后,现在就可以在超级终端 u-boot 控制界面修改命令行参数通过 NFS 启动根文件系统了。假设 Linux 主机 IP 192.168.0.100NFS 目录为/tftpboot/rootfs,就可以如下设置命令行参数后启动内核。

方式一:

# set bootargs noinitrd root=/dev/nfs console=ttySAC0,115200 nfsroot=192.168.0.100:/tftpboot/rootfs ip=192.168.0.150:192.168.0.100:1 92.168.0.1:255.

255.255.0::eth0:off

方式二:

# set bootargs root=/dev/nfs nfsroot=192.168.0.100:/tftpboot/rootfs

ip=192.168.0.150:192.168.0.100:192.168.0.1:255.255.255.0 console =ttySAC0,115200

mem=64M

方式三:

# set bootargs root=/dev/nfs nfsroot=192.168.0.100:/tftpboot/rootfs, 

rsize=1500,wsize=1500 ip=192.168.0.150:192.168.0.100:192.168.0.1 :255.255.255.0

console=ttySAC0,115200 mem=64M

增加 rsize 和 wsize 参数,增加块大小(默认为1024),我猜想可以减小丢包概率;

# saveenv

命令参数行解释:

Targetboard IP addr 192.168.0.150

Host PC IP addr 192.168.0.100

Gateway 192.168.0.1

Nfs dir 192.168.0.100:/tftpboot/rootfs

各命令行格式:

1、 root=/dev/nfs 

并非真的设备,而是一个告诉内核经由网络取得根文件系统的旗标

2nfsroot

参数nfsroot 这个参数告诉内核以那一台机器,那个目录以及那个网络文件系统选项作为根文件系统使用,命令格式:

nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]

1<server-ip>--指定网络文件系统服务端的互联网地址(IP address) 。如果没有给定此栏位,则使用由nfsaddrs 变量(见下面)所决定的值。此参数的用途之一是允许使用不同机器作为反向地址解析协议(RARP)及网络文件系统服务端。通常你可以不管它(设为空白)。

2<root-dir>-- 服务端上要作为根挂入的目录名称。如果字串中有个‘%s’符记(token) ,此符记将代换为客户端互联网地址之ASCII 表示法。

3<nfs-options>--标准的网络文件系统选项,所有选项都以逗号分开。如果没有给定此选项栏位则使用下列的预设值:

port = as given by server portmap daemon

rsize = 1024

wsize = 1024

timeo = 7

retrans = 3

acregmin = 3

acregmax = 60

acdirmin = 30

acdirmax = 60

flags = hard, nointr, noposix, cto, ac

3nfsaddrs

参数nfsaddrs 设定网络通讯所需的各种网络接口地址。如果没有给定这个参数,则内核会试著使用反向地址解析协议以及/或是启动协议(BOOTP) 以找出这些参数。其格式如下:

nfsaddrs=<my-ip>:<serv-ip>:<gw-ip >:<netmask>:<name>:<dev>:<auto>

1<name>-- 客户端的名称。如果空白,则使用客户端互联网地址之 ASCII- 标记法,或由启动协议接收的值;

2<dev>--要使用的网络设备名称。如果为空白,所有设备都会用来发出反向地址解析请求,启动协议请求由最先找到的设备发出。网络文件系统使用接收到反向地址解析协议或启动协议回应的设备。如果你只有一个设备那你可以不管它。

3<auto>--用以作为自动配置的方法。如果是`rarp' 或是`bootp' 则使用所指示的协议;如果此值为`both'或空白,若配置核心时有打开这两种协议则都使用;`none' 表示不使用自动配置,这种情况下你必须指定前述栏位中所有必要的值。此<auto> 参数可以作为nfsaddrs 的参数单独使用(前面没有任何`:`字符),这种情况下会使用自动配置。然而,此种情况不能使用`none' 作为值。

三、内核配置要求添加内核对NFS 的支持:

1)选中networking support->networking options->IP:kernel level auloconfiguralion 

2)选中file systems->network file systems-> 下的root file system on nfs nfs file system support

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
登录到要设置NFS 服务的那个服务器上 Linux 挂载 NFS 2 设置 NFS 要共享的目录,在命令行输入 vi /etc/exports 后回车 Linux 挂载 NFS 3 进入 vi 的文件编辑窗口,按 i 键切换到编辑模式,输入你想设置的目录位置和权限,如:/var/ftp *(rw,no_root_squash) ;说明:/var/ftp 为共享的目录位置; *(rw,no_root_squash) *为任意IP都可以访问 rw为可进行读写访问 no_root_squash 为拥有这个目录所有者的权限。 Linux 挂载 NFS 4 确认输入正确后,按 Esc 键,回到 vi 的命令模式,依次按 : (冒号) wq 键后回车保存并退出编辑。 Linux 挂载 NFS Linux 挂载 NFS 5 使用 service nfs start 命令启动 NFS 服务(在对 /etc/exports 做了任何修改后都需要重启 NFS 服务,才可以使修改生效,重启命令 service nfs restart) Linux 挂载 NFS 6 至此,服务器上面的设置完成了。 7 开始使用NFS服务的客户端设置,首先还是先使用 PuTTY 登录到要使用 NFS 的电脑上。(为了方便,我都是在一台电脑上操作的) 8 建立 NFS挂载位置的目录(如果目录已经存在忽略此步骤),加入我想挂载到 /var/ftp 这个目录下,那么我先用命令 mkdir /nfs/ftp 创建目录,之后使用 ls /var -l 命令查看 Linux 挂载 NFS 9 挂载 NFS 共享,使用 mount -t nfs -o rw 192.168.109.130:/nfs/ftp /var/ftp 命令完成挂载 10 要想每次启动机器的时候自动挂载,可使用命令 vi /etc/fstab 编辑,在最后面加上 192.168.109.130:/var/ftp /nfs/ftp nfs defaults 0 0 ,保存退出。这样在每次启动的时候就会自动挂载 192.168.109.130:/var/ftp 这个NFS 共享了

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值