|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
8 p6 A3 n S* V7 @- X2 y建立 nfs 服务器 ; q1 ]5 C# {0 @1 O% ]
在嵌入式 linux 开发的时候,常常需要使用 nfs 以方便程序的调试。使用 nfs,用户可以0 z+ R7 |; Q: m6 G
将板子要用到的根文件系统放在主机目录下,开发板则通过以太网挂载到这个目录并将这个2 H) g# }, _ [" R( D
目录下的文件作为根文件系统的内容,这样用户的程序更新后不比重新烧写板子的根文件系& v) ?5 P, D+ D4 ~; [. w
统便能被重新使用,这点能够大大加快程序的调试。 ) A8 S: O D$ ^- t, ~7 U
Ubuntu 下安装 nfs 服务器的步骤如下: " y$ W' j2 C' {( f4 l2 A% S; n5 u
4.3.1 进行 NFS 服务器端与客户端的安装:
% v9 q! v8 p0 s; W, n/ ~% O, asudo apt-get install nfs-kernel-server nfs-common portmap
$ X: ?0 ~$ Q1 N. b6 F/ c" t安装客户端的作用是可以在本机进行 NFS 服务的测试。
4 w, E0 T! G7 C8 [ H# x- T9 A4.3.2 配置 portmap
1 A1 u; {, P& v, Z+ @! k两种方法任选一种就可以:
+ l0 O G$ R8 X* p9 Q j b(1):sudo emacs /etc/default/portmap # {; k5 d- m2 I! E& {+ [- j
去掉 -i 127.0.0.1
+ [ Z4 ?7 j( Y& `! E3 I(2)sudo dpkg-reconfigure portmap
: _# e. @; L, K0 c" T# V运行后选择“否”
- N* Z, u0 ?! \5 O) u另外很重要的一点,要用 sysv-rc-conf (而不是 chkconfig)工具查看一下当前 nfs 和 portmap
% L1 j: x+ H. l. c6 @7 k" v& k2 [的状态,若是 off,则用 sudo sysv-rc-conf portmap on 或 sudo sysv-rc-conf nfs-kernel-server on
$ p0 F1 q+ J# w: ^* k- h, p打开
* t+ {# O/ o% B @( G" h4.3.3 配置挂载目录和权限 ' N9 k y, m& s1 E" p! I) O9 Z
emacs /etc/exports % V, Q. n0 s8 R8 e: h# h; k
我的配置如下:
+ W, d5 C# K$ d l3 J8 w& {& L# /etc/exports: the access control list for filesystems which may be exported $ {7 z; W9 F2 |6 ]2 [3 q5 D. i* T
# to NFS clients. See exports(5). 7 b( ~0 r7 u3 ?+ z4 A0 @# [ s
#
5 B; P$ W! @0 p' f# Example for NFSv2 and NFSv3: / i' v' y) l1 F
# /srv/homes hostname1(rw,sync) hostname2(ro,sync) ( m6 |: L4 z- z" z' ~8 J3 }
#
}' ] q' B# E6 S/ j# Example for NFSv4: 0 x+ I, Q* ~. p x" @6 C7 t$ |
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt) 2 \8 s9 r8 z8 C4 ?* L4 E9 E
# /srv/nfs4/homes gss/krb5i(rw,sync)
8 o* q4 z) C- A/ x6 b y#
; p' f; `1 ]. z% M# |/ j) s5 g" l/nfsboot *(rw,sync) % ~4 x c: E, Y; { c# ?: B7 ~
解释一下:
8 z" ^' i& l: [' h#后面的都是解释
9 q6 V8 m2 v' ?, L1 u/nfsboot 是 NFS 的共享目录,*表示任何 IP 都可以共享这个目录,你可以改为受限的 IP,rw6 r8 Z/ m7 G* F) [7 ]# V
表示的是权限,sync 是默认的。
$ ^( H- ?& i( R% _; L4.3.4 更新 exports 文件
& W, O5 H4 N1 o7 U U6 V只要你更改了/etc/exports, 你不可以通过 sudo exportfs -r 来更新 这个文件 8 t2 x2 k% D" S9 B/ M" Z2 j( p, R
4.3.5 重启 NFS 服务
( a8 B- `# I& q! n FSudo /etc/init.d/portmap start
! R2 j. f2 ?: T Q: e; {$ Wsudo /etc/init.d/nfs-kernel-server restart 重启 nfs 服务
) d0 `; q1 T) N v# E" }( \4.3.6 进行测试
1 h# R! J% N Q" e尝试一下挂载本地磁盘(我的 linux 系统 IP 为 202.198.137.18,将/home/nfsboot 挂载到/mnt) 1 ?( Y9 j+ O. M, ^
$ sudo mount 202.198.137.18:/nfsboot /mnt
( i6 B: T& C4 @5 U: p0 E运行 $ df 看看结果 3 A3 z/ l3 \& p' v; U. ~/ T
$ sudo umount /mnt |
|