S3C2440挂载NFS根文件系统

主要记录下如何在ARM开发板上挂载NFS根文件系统。

PC主机:Ubuntu 和redhat 9.0

目标板:TQ2440开发板,linux内核2.6.32

 

1.PC上安装NFS服务

sudo apt-get install nfs-kernel-server
sudo apt-get install portmap nfs-common

2. 编辑/etc/exports文件
yj423@ubuntu:~$ cat /etc/exports

/home/yj423/nfswork *(rw,sync,no_root_squash)

设置/home/yj423/nfswork为被挂载的文件目录

3.启动NFS服务

sudo /etc/init.d/nfs-kernel-server start
sudo /etc/init.d/portmap start

NOTE:确保每次Ubunu重启时都要启动这两个服务,否则NFS根文件不能挂载。

4.配置开发板Linux内核,

首先,开启NFS客户端和NFS根文件系统。


接着,打开DHCP服务。


5.使用Uboot修改内核命令行参数

启动Uboot后,设置环境变量bootargs,输入命令

setenv bootargs noinitrd console=ttySAC0 root=/dev/nfs ip=dhcp nfsroot=192.168.1.102:/home/yj423/nfswork

说明:root表示根文件系统所在的位置,这里为NFS根文件系统。

         nfsroot表示NFS根文件系统所在的位置。192.168.1.102为PC机的IP地址,/home/yj423/nfswork即为NFS根文件所在的路径。 

6.启动内核

.......

eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Sending DHCP requests ., OK
IP-Config: Got DHCP answer from 0.0.0.0, my address is 192.168.0.103
IP-Config: Complete:
     device=eth0, addr=192.168.0.103, mask=255.255.255.0, gw=192.168.0.1,
     host=192.168.0.103, domain=, nis-domain=(none),
     bootserver=0.0.0.0, rootserver=192.168.0.102, rootpath=, mtu=576
Looking up port of RPC 100003/2 on 192.168.0.102
Looking up port of RPC 100005/1 on 192.168.0.102
VFS: Mounted root (nfs filesystem) on device 0:12.
Freeing init memory: 156K
[01/Jan/1970:00:00:14 +0000] boa: server version Boa/0.94.13
[01/Jan/1970:00:00:14 +0000] boa: server built Jul 29 2009 at 14:27:34.
[01/Jan/1970:00:00:14 +0000] boa: starting server pid=920, port 80
Please press Enter to activate this console.
[root@yj423 /]#

NFS根文件系统挂载已经完成。

看一下根目录:

[root@yj423 /]#ls
bin      dev      home     linuxrc  proc     sbin     tmp      var
boot     etc      lib      mnt      root     sys      usr

NOTE:在TQ2440的rcS文件中会启动一个脚本net_set,该脚本将会设置ip地址,子网掩码等网络参数,在挂载根文件系统时必须禁止该脚本的运行,否则系统会出现异常,导致系统无法继续运行。


2013.04.15  修改内核为2.6.32,更换图片。

你可能感兴趣的:(文件系统)