您的位置:首页 > 运维架构 > Linux

搭建Linux嵌入式开发环境

2012-06-03 10:41 309 查看
处理器 :ARM S3C2410

Linuc版本:Debian 4.0


一、搭建NFS服务

1、安装
服务器端安装
在Debian系统下安装NFS是相当简单的,在NFS服务器上执行下面的命令即 可


# aptitude install nfs-common nfs-kernel-server portmap
在客户端则需要安装:


# aptitude install nfs-common portmap

2、服务的启动停止与重启

# /etc/init.d/nfs-kernel-server start
# /etc/init.d/nfs-kernel-server stop


# /etc/init.d/nfs-kernel-server restart


3、服务器端配置

创建共享目录


# mkdir /home/share


# chown nobody.nogroup /home/share

创建或修改/etc/exports文件

这个文件的内容非常简单,每一行由抛出路径,客户名列表以及每个客户名后紧跟的访问选项构成:


[共享的目录] [主机名或IP(参数,参数)]


其中参数是可选的,当不指定参数时,nfs将使用默认选项。默认的共享选项是 sync,ro,root_squash,no_delay。



当主机名或IP地址为空时,则代表共享给任意客户机提供服务。

当将同一目录共享给多个客户机,但对每个客户机提供的权限不同时,可以这样:


[共享的目录] [主机名1或IP1(参数1,参数2)] [主机名2或IP2(参数3,参数4)]
 下面是一些NFS共享的常用参数:  
 
[code]
ro 只读访问
rw 读写访问
sync 所有数据在请求时写入共享
async NFS在写入数据前可以相应请求
secure NFS通过1024以下的安全TCP/IP端口发送
insecure NFS通过1024以上的端口发送
wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide 在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录
subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas root用户具有根目录的完全管理访问权限
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID
[/code]

配置文件/etc/exports内容如下:


$ cat /etc/exports




/home/share 192.168.102.15(rw,sync) *(ro)
配置说明: 对192.168.102.15赋予读写权限,其他机器仅有只读权限。

重启NFS服务

  # /etc/init.d/nfs-kernel-server restart


在客户机上查看NFS的资源共享情况



# showmount -e 192.168.102.47




Export list for 192.168.102.47:/home/share (everyone)
使用mount命令即可挂栽共享资源

在客户机 192.168.102.15 上加载共享资源


二、搭建tftp服务器
1、安装
服务器端


#aptitude install tftpd
安装完后,/etc/inetd.conf 档会有一行是tftpd的invoke 命令。最后一个argument是tftp 的export 目录。debian
default是 /boot,一般是用/tftpboot,所以要修改一下


tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
修改后要reoad一下inetd,即执行


# /etc/init.d/inetd reload
客户端安装



#aptitude install tftp
测试

将一些file放到/tftpboot测试传送


$tftp 10.3.7.xxx




tftp>get xxxxxxx




tftp 是一个很简单的file transfer protocol,他使用udp,并且没有很多handshaking,authorization的机制,Client 所需要的code比较检单,所以常常用在许多resource limited 的embedded system 中,或是用在开机的时候。

因为tftp 不是一个常常会使用的服务,所以以standalone dameon的方式执行会一直站住内存,所以建议使用inetd的方式来安装。


# mount 192.168.102.47:/home/share /mnt


# cd /mnt


# echo '12345'> 123





即可发现对服务器共享目录可写


# umount /mnt


在客户机 192.168.102.61 上加载共享资源




# mount 192.168.102.47:/home/share /mnt

        # cd /mnt

        # ls
        123

        # touch 321

        touch: cannot touch `321': Permission denied

        # echo '123455' >123

        -bash: 123: Permission denied




即可发现对服务器共享目录只有读取权限,

这与我们在服务器端的权限设置是相符的。

是不是我们每次修改了配置文件都需要重启nfs服务呢? 这个时候我们就可以用exportfs命令重新扫描/etc/exports文件,来使改动立刻生效。

比如:




# exportfs -au 卸载所有共享目录

        # exportfs -rv 重新共享所有目录并输出详细信息




exportfs 命令有软件包 nfs-kernel-server 提供,详细的 exportfs 命令说明请查看:





man exportfs
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: