分类: LINUX
2010-08-25 15:44:13
一. NFS服务挂接根文件系统
(1)什么是根文件系统?
与windows的C盘类似,Linux一样要在一个分区上存放系统启动所必需的文件,比如内核映象文件(在嵌入式系统中,内核一般单独存放在一个分区中)、内核启动后运行的第一个程序(init)、给用户提供操作界面的shell程序、应用程序所依赖的库等。这些系统启动的必需、基本的文件合称根文件系统,他们存放在一个分区中。Linux系统启动后首先挂接这个分区,称为挂接根文件系统。
(2)利用NFS挂接根文件系统来启动系统的必需准备的几个条件:
a.按照U-Boot的使用说明烧写新内核
b.在Linux主机上启动NFS服务 /etc/init.d/nfs start
c.在U-Boot控制界面修改命令行参数
set bootargs noinitrd root=/dev/nfs console=ttySAC0 nfsroot=
root=/dev/nfs 这个只是告诉内核用的是NFS设备
console=ttySAC0 这个是控制台
nfsroot=
ip=
ip=
在虚拟机中修改网关:route add default gw
d.直接启动系统就可以了
二.NFS服务挂接共享文件
(1)系统启动以后在控制台挂接共享文件,以下是具体步骤和可能出的问题
a. 确保Linux主机上已经启动了NFS服务
b. 确保主机和目标板用网线连接了
c.确保主机和目标板在同一网段,例如这样,主机的ip:
d.挂接命令:
mount -o nolock -t nfs
mount -o nolock
这两个都可以。
(2)可能出现的错误类型
a. 错误类型:
rpcbind: server localhost not responding, timed out
RPC: failed to contact local rpcbind server (errno 5).
lockd_up: makesock failed, error=-5
rpcbind: server localhost not responding, timed out
RPC: failed to contact local rpcbind server (errno 5).
mount: mounting
这个问题是因为挂接命令不对,要加上参数-o nolock就可以了
b. 错误类型:
cs89x0: Tx buffer not free!
NETDEV WATCHDOG: eth0: transmit timed out
eth0: transmit timed out, IRQ conflict ??
eth0: transmit underrun
这个问题是因为主机和目标板没有用网线连接