mini2440 nfs根文件系统支持

内核版本:linux-2.6.32.2        实验平台:ubuntu 12.04 + mini2440

nfs文件系统称为网络文件系统,因为文件系统在宿主机中,这样在修改文件系统就非常方便,所以主要用于开发阶段使用。


1. 主机安装nfs服务

$ sudo apt-get install nfs-kernel-server


2. 主机端修改nfs配置文件
修改/etc/exports文件,添加如下内容:

#/home/tracy/work/mini2440/nfsroot 192.168.1.*(rw,sync,no_root_squash)
/home/tracy/work/mini2440/nfsroot *(rw,sync,no_root_squash)

原意是想让192.168.1.*ip地址访问nfsroot,但是在本地测试时会出现这样一条信息:

mount.nfs: access denied by server while mounting 192.168.1.100:/home/tracy/work/mini2440/nfsroot

测试命令如下:

$ sudo mount 192.168.1.100:/home/tracy/work/mini2440/nfsroot /mnt/tmp

一时也没有找到问题所在,所以改成了所有ip地址都能访问nfsroot,再次测试时能够挂载成功。


3. 重启nfs服务

$ sudo service nfs-kernel-server restart


4. 内核配置
使用nfs服务,肯定需要网络的支持,所以首先需要使网络能够正常工作,可以参阅前面一篇文章,然后还需要nfs客户端的支持。

    File systems  --->
	[*] Network File Systems  --->
		<*>   NFS client support
		[*]     Root file system on NFS


5. 在bootloader中设置内核启动的命令行参数

noinitrd console=ttySAC0,115200 init=/init root=/dev/nfs rw nfsroot=192.168.1.100:/home/tracy/work/mini2440/nfsroot/rootfs ip=192.168.1.110:192.168.1.100:192.168.1.1:255.255.255.0::eth0: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前面有两个冒号,那是因为这里还可以填写一个板子的主机名,这里没有设置,所以为空。


6. 测试结果
将编译好的内核下载到板子上(不需要下载根文件系统,根文件系统在nfs服务器上),在测试之前还需要将rootfs复制到nfsroot目录下,给板子连上网线进行测试(使用的是mini2440自带的交叉网线连接到路由器上的),系统正常启动。使用nfs文件系统有什么好处呢,在开发阶段,如果需要修改文件系统内容,或者要往板子上传递文件,使用nfs文件系统是非常方便的,只需要在本地nfs服务器上修改文件系统就可以了。
注意:通过交叉网线与电脑直连的方式,系统也是同样能够启动的。


7. 使用nfs直接挂载nfs服务器上的目录
需要配置内核:

    File systems  --->
	[*] Network File Systems  --->
		<*>   NFS client support
		[*]     NFS client support for NFS version 3
		[*]       NFS client support for the NFSv3 ACL protocol extension
		[*]     NFS client support for NFS version 4 (EXPERIMENTAL)
		[*]       NFS client support for NFSv4.1 (DEVELOPER ONLY)

上面这些都是需要内核支持的nfs协议,而之前的配置是支持nfs根文件系统。

烧写内核和根文件系统,启动板子,系统启动之后(首先需要设置板子的ip地址)调用如下命令进行挂载:

mount -o nolock -t nfs 192.168.1.100:/home/tracy/work/mini2440/nfsroot /mnt/tmp

注意一定要加上-o nolock,否则会挂在不上。

你可能感兴趣的:(mini2440 nfs根文件系统支持)