|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
, y: I7 }( L5 S$ N建立 nfs 服务器 6 ` P7 b* n) o& R) D+ g
在嵌入式 linux 开发的时候,常常需要使用 nfs 以方便程序的调试。使用 nfs,用户可以
z/ U. Q* |1 y将板子要用到的根文件系统放在主机目录下,开发板则通过以太网挂载到这个目录并将这个
: z: v8 F4 u9 o; z0 d目录下的文件作为根文件系统的内容,这样用户的程序更新后不比重新烧写板子的根文件系- b; J! w1 q( q Z
统便能被重新使用,这点能够大大加快程序的调试。
. @- f& @( F' Z6 d3 s/ `2 ^* \Ubuntu 下安装 nfs 服务器的步骤如下:
9 _! a( y" Q& {% N- ]4.3.1 进行 NFS 服务器端与客户端的安装: 4 x. z+ @ M7 U c4 a: ]. D8 E
sudo apt-get install nfs-kernel-server nfs-common portmap 8 g( z$ f4 ^, @; x) [
安装客户端的作用是可以在本机进行 NFS 服务的测试。
0 d. ]/ x( V2 n4.3.2 配置 portmap ' ~% n9 `7 E7 b5 z$ H& [0 K
两种方法任选一种就可以: 6 b- _; d H, C2 Y/ Z; o: w& y
(1):sudo emacs /etc/default/portmap , x8 u1 K! [* P- n* l3 ^# u( R' T
去掉 -i 127.0.0.1
7 }$ ~6 v! S1 x/ @(2)sudo dpkg-reconfigure portmap / N3 s$ V* p: d0 j! Z% a* N
运行后选择“否”
( _5 N9 N, k8 q! r另外很重要的一点,要用 sysv-rc-conf (而不是 chkconfig)工具查看一下当前 nfs 和 portmap9 w; L5 `, } O2 P
的状态,若是 off,则用 sudo sysv-rc-conf portmap on 或 sudo sysv-rc-conf nfs-kernel-server on, a* L Q7 {: ?/ N
打开 6 Y" m% H" b' Q
4.3.3 配置挂载目录和权限 $ W$ W% A3 E4 z+ j/ A
emacs /etc/exports
6 y) p% K4 i* l* o% b; E我的配置如下: 7 ?& v \9 j+ v% R
# /etc/exports: the access control list for filesystems which may be exported / z& j6 |3 {/ l0 p
# to NFS clients. See exports(5). 6 M, `* w3 ?$ X4 x
#
/ ?" i1 R3 C6 d3 n1 K( r# Example for NFSv2 and NFSv3:
& Z) r: `4 k; ]0 R8 A; h# /srv/homes hostname1(rw,sync) hostname2(ro,sync) 6 k- U4 ~0 \* |/ ~0 C! f
# $ @+ {) ~0 U) ` K. ]# t: j
# Example for NFSv4:
' G8 X( `( z; \: U" s& b# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt) 4 x H; i- Y% R; d
# /srv/nfs4/homes gss/krb5i(rw,sync)
. C9 `$ b! {' ]0 z#
2 A& |: s( u: s; z6 k- z, ~/nfsboot *(rw,sync) 9 z6 v1 G( ]6 G- ]
解释一下:
. S. L8 j8 z5 a( K7 R+ V" \#后面的都是解释 # g: n& I5 n& S+ _1 j: M5 F* ?
/nfsboot 是 NFS 的共享目录,*表示任何 IP 都可以共享这个目录,你可以改为受限的 IP,rw3 O) ^$ [1 d3 F7 `0 v1 R0 |, T5 z
表示的是权限,sync 是默认的。 % b) l, f* Z. ~( V/ b
4.3.4 更新 exports 文件
! ?+ i% q; i) a5 m1 \% v只要你更改了/etc/exports, 你不可以通过 sudo exportfs -r 来更新 这个文件
: Z! u$ I/ j) ?4.3.5 重启 NFS 服务 0 p s. |" B* X, x" K1 E3 \* {0 w
Sudo /etc/init.d/portmap start
2 d0 ^$ U& q v" B! O& ^+ H6 F, Vsudo /etc/init.d/nfs-kernel-server restart 重启 nfs 服务 ) \. }7 I& Q# {8 k, p0 v. Q
4.3.6 进行测试
& U3 o3 u2 I: u( \! q$ K尝试一下挂载本地磁盘(我的 linux 系统 IP 为 202.198.137.18,将/home/nfsboot 挂载到/mnt) . ]) X! M1 K0 C0 H- Z
$ sudo mount 202.198.137.18:/nfsboot /mnt ! N1 }% [' F, t8 ^3 |
运行 $ df 看看结果 S! m8 G- C2 _! e( v
$ sudo umount /mnt |
|