|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
) f8 R" g% K* R8 T
建立 nfs 服务器 ' I- O$ V: c! m! i
在嵌入式 linux 开发的时候,常常需要使用 nfs 以方便程序的调试。使用 nfs,用户可以
. P3 y7 ?. h4 l+ O! V将板子要用到的根文件系统放在主机目录下,开发板则通过以太网挂载到这个目录并将这个
2 ]4 K, d$ Z, T3 F目录下的文件作为根文件系统的内容,这样用户的程序更新后不比重新烧写板子的根文件系
5 G* Y& G( J" K" e' y统便能被重新使用,这点能够大大加快程序的调试。 ) _. F8 O& {5 |/ a7 x4 J
Ubuntu 下安装 nfs 服务器的步骤如下: $ Y8 c5 O( `. ?
4.3.1 进行 NFS 服务器端与客户端的安装: " w+ c% \- y* h+ b. ~4 \. i
sudo apt-get install nfs-kernel-server nfs-common portmap 6 w% k( @$ k% z' {
安装客户端的作用是可以在本机进行 NFS 服务的测试。
' @+ e7 m2 {+ O) Y( l4.3.2 配置 portmap
7 P1 W5 m# h# I% p/ ]5 O两种方法任选一种就可以: 0 E$ F: @: m% R" X1 n9 k7 z% o
(1):sudo emacs /etc/default/portmap
! c: q5 X. A" v$ Q! Q/ `9 p去掉 -i 127.0.0.1
) X: O T* `" O7 v(2)sudo dpkg-reconfigure portmap ! |2 N, l4 S5 t$ t
运行后选择“否”
: Y; ~* n3 ?; O- z2 k1 L另外很重要的一点,要用 sysv-rc-conf (而不是 chkconfig)工具查看一下当前 nfs 和 portmap
& f. ~; Z$ }0 j" K8 C的状态,若是 off,则用 sudo sysv-rc-conf portmap on 或 sudo sysv-rc-conf nfs-kernel-server on' P4 r# r" Q1 d# Z
打开
: @- H& G+ T( m6 ?6 m4.3.3 配置挂载目录和权限 : `9 N$ D3 X1 ~% z# i( I
emacs /etc/exports 0 c `4 e& H- N
我的配置如下:
0 f0 r9 Q3 f; A5 b; d' G# /etc/exports: the access control list for filesystems which may be exported
% X5 m) j) O9 L! |3 l# to NFS clients. See exports(5). 7 G; w' |2 \" v9 g* z
#
/ @: u% z( ^0 d5 ?7 d0 {# Example for NFSv2 and NFSv3: . M& s$ P+ r: W7 B
# /srv/homes hostname1(rw,sync) hostname2(ro,sync) 5 E- J" G( P$ G/ o( h0 d! r
#
3 k5 J( z7 B3 @2 x0 F+ y* r) G% z# Example for NFSv4:
; q4 x1 `5 f0 H" C1 F$ U7 ]# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt) . m, X5 Z# |1 J
# /srv/nfs4/homes gss/krb5i(rw,sync)
5 I% B% `" H0 | k! @ w: E# 2 L) ?3 l! {4 d$ y6 P8 e
/nfsboot *(rw,sync) + R( q5 q3 A! }! k; ^
解释一下:
, [' y& w; U- Q# c t#后面的都是解释
$ I+ h' l, W, \2 f8 C/nfsboot 是 NFS 的共享目录,*表示任何 IP 都可以共享这个目录,你可以改为受限的 IP,rw
+ o( \! M, s6 y: X: u2 K3 A7 [- C- D表示的是权限,sync 是默认的。 3 z$ u" X4 Q3 ^7 w# u
4.3.4 更新 exports 文件 0 z0 Y( `& [( b9 _/ H9 ^
只要你更改了/etc/exports, 你不可以通过 sudo exportfs -r 来更新 这个文件 Q, M7 a5 W) o3 h% O: i* r
4.3.5 重启 NFS 服务 " S8 S3 L0 C8 M
Sudo /etc/init.d/portmap start. z( n, W7 k" F1 {& J
sudo /etc/init.d/nfs-kernel-server restart 重启 nfs 服务
# b/ |6 V2 T) d% [4.3.6 进行测试
2 E9 c8 T* O1 J6 B1 I' F5 T3 I尝试一下挂载本地磁盘(我的 linux 系统 IP 为 202.198.137.18,将/home/nfsboot 挂载到/mnt) & e6 B6 r6 \- j9 U
$ sudo mount 202.198.137.18:/nfsboot /mnt & v3 E; ^- _1 Q3 M
运行 $ df 看看结果 ) Q0 C- r/ J8 m7 k1 w% E9 V9 `
$ sudo umount /mnt |
|