|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
7 C! C' }& _9 V) ~% w. e建立 nfs 服务器
' [# q* P* J4 p2 ~' B0 ? 在嵌入式 linux 开发的时候,常常需要使用 nfs 以方便程序的调试。使用 nfs,用户可以
+ n; {) `3 z* _/ Q/ w" R+ p将板子要用到的根文件系统放在主机目录下,开发板则通过以太网挂载到这个目录并将这个& |; W- p2 `) g0 ~& x4 I
目录下的文件作为根文件系统的内容,这样用户的程序更新后不比重新烧写板子的根文件系
2 Y& X, t3 \9 C; P& p# Q, A统便能被重新使用,这点能够大大加快程序的调试。
# i- b3 m/ V) J6 e WUbuntu 下安装 nfs 服务器的步骤如下: 0 n2 Z/ t6 S; s9 s
4.3.1 进行 NFS 服务器端与客户端的安装:
5 o% i1 D1 H2 q# r/ y3 Bsudo apt-get install nfs-kernel-server nfs-common portmap
, e; Z' j2 {9 q: I# W7 P1 D# C安装客户端的作用是可以在本机进行 NFS 服务的测试。
8 F) M! Y' Z4 J5 ]) z4 u$ `+ o* a6 B0 y4.3.2 配置 portmap
[/ A% m1 h% V! ?7 I两种方法任选一种就可以:
- W. s0 z L; B% }0 r8 V8 H(1):sudo emacs /etc/default/portmap : a p. \5 T6 p! E c: |$ q% q
去掉 -i 127.0.0.1 , l+ X" z# G, Y8 k1 S+ o. i4 p/ P
(2)sudo dpkg-reconfigure portmap . P* ? z$ I& l! U
运行后选择“否”
' O: _8 l/ G- G/ B% U另外很重要的一点,要用 sysv-rc-conf (而不是 chkconfig)工具查看一下当前 nfs 和 portmap
1 s# r4 x, K; b! b的状态,若是 off,则用 sudo sysv-rc-conf portmap on 或 sudo sysv-rc-conf nfs-kernel-server on6 k, e [3 c" d( l1 D0 Z7 C+ y- s
打开 : G5 n% o1 [. n( L! m! w" Z6 D
4.3.3 配置挂载目录和权限 % G! i8 L2 \% G3 B
emacs /etc/exports
1 P. U8 `( |9 c我的配置如下:
1 D2 X) D) ?2 I* h% L9 s# /etc/exports: the access control list for filesystems which may be exported 0 N- R+ W: C, Q$ x
# to NFS clients. See exports(5).
4 Q' A8 s# w! o# 8 g6 y$ n! ]6 a; a8 b; c+ q g
# Example for NFSv2 and NFSv3: 1 X* W$ x' m4 o0 v- O
# /srv/homes hostname1(rw,sync) hostname2(ro,sync) ) Z: T; S7 B# s
#
, K& i6 V& Z" w. t; A- ?# Example for NFSv4: 4 L( E+ i4 y2 N" q- L0 T; f
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt)
/ P. l& A' r; r# /srv/nfs4/homes gss/krb5i(rw,sync)
* d) S( J- [" O# X# ) c, X4 u; \& I1 l
/nfsboot *(rw,sync)
# g! X3 s1 _$ G$ T解释一下:
* S' k: i& [$ l: ~( s#后面的都是解释
! h; S2 a2 {: n; ^# b$ o& G6 s/nfsboot 是 NFS 的共享目录,*表示任何 IP 都可以共享这个目录,你可以改为受限的 IP,rw
8 [% \9 Y. I- |4 S3 W$ v7 o. B表示的是权限,sync 是默认的。 ' t* M }0 i* u, d) S: ]
4.3.4 更新 exports 文件
}5 V8 e7 A0 B9 n8 b只要你更改了/etc/exports, 你不可以通过 sudo exportfs -r 来更新 这个文件
/ D4 R( ]3 H: K R4.3.5 重启 NFS 服务
0 h: o: A" N% ]# j# h, p( GSudo /etc/init.d/portmap start: y$ L' q, t: P9 F7 h; ]
sudo /etc/init.d/nfs-kernel-server restart 重启 nfs 服务 4 p2 z8 V$ [3 Z+ m' [6 I) `
4.3.6 进行测试
7 U( |, Q% q# }3 ?, y/ ^' A2 `2 w/ M尝试一下挂载本地磁盘(我的 linux 系统 IP 为 202.198.137.18,将/home/nfsboot 挂载到/mnt)
8 Q, n* I7 _- e: D9 O$ sudo mount 202.198.137.18:/nfsboot /mnt
. i( p8 O0 G+ m% b运行 $ df 看看结果
7 N- }- K* Q( N; ]- ~$ sudo umount /mnt |
|