Ubuntu上配置NFS
宿主机: Ubuntu 5.10 on Dell Latitude D600 (Interl PM 1.6G Hz)
目标板: 华恒学习板(ARM9,Samsung S3C2410)
在嵌入式Linux开发过程中,可以直接让目标系统运行宿主机上的程序,这是如何实现的呢?——实际上就是在目标系统下将宿主机的磁盘分区挂载到目标系统的文件系统,这样就能让应用程序直接在目标系统上进行调试。可以通过NFS来实现挂载。
NFS(网络文件系统)可以使计算机像挂载本地磁盘一样挂载远程计算机的磁盘分区,它可实现网络间文件的快速、无缝共享。
1,安装 要让开发板能够挂载宿主机的文件系统,即在Host/Target之间建立NFS的Server/Client关系。宿主机上必须有NFS服务程序。而Ubuntu上默认是没有安装NFS服务器的,首先要安装NFS服务程序:
$
sudo apt-get install nfs-kernel-server (安装nfs-kernel-server时,apt会自动安装nfs-common和portmap)
这样,宿主机就相当于NFS Server。
同样的,目标系统作为NFS的客户端,需要安装NFS客户端程序。如果是Debian/Ubuntu系统,则需要安装nfs-common。
$
sudo apt-get install nfs-commmon 当然,由于目标系统是嵌入式的,现在假定它具有NFS客户端功能(具体如何实现以后再研究)
2,配置配置/etc/exports NFS挂载目录及权限:由/etc/exports文件定义
在该文件末尾添加下列语句:
/home/hh 192.168.2.0/24(rw,async)
/* 192.168.2.0 ~ 192.168.2.255网段内的NFS客户端能够共享NFS服务器/home/hh目录内容,且有读、写权限。 */s
运行 $
showmount -ehowmount -e 查看NFS server的export list.
配置portmap 方法1: 编辑/etc/default/portmap, 将 -i 127.0.0.1 去掉。
方法2: $
sudo dpkg-reconfigure portmap,对Should portmap be bound to the loopback address? 选N。
运行 $
sudo /etc/init.d/portmap restart 重启portmap daemon.
配置/etc/hosts.deny:(禁止任何host(主机)能和你的NFS服务器进行NFS连接),加入:
### NFS DAEMONSportmap:ALLlockd:ALLmountd:ALLrquotad:ALLstatd:ALL配置/etc/hosts.allow,允许那些你想要的主机和你的NFS服务器建立连接。下列步骤将允许任何IP地址以192.168.2开头的主机(连接到NFS服务器上),也可以指定特定的IP地址。参看man页 hosts_access(5), hosts_options(5)。加入:
### NFS DAEMONSportmap: 192.168.2.lockd: 192.168.2.rquotad: 192.168.2.mountd: 192.168.2.statd: 192.168.2. 运行 $
sudo /etc/init.d/nfs-kernel-server restart 重启nfs服务.
3, 测试测试NFS:挂载本地磁盘(假设本地主机IP地址为:192.128.2.1,将/home/hh挂载到/mnt)
$
sudo mount 192.168.2.1:/home/hh /mnt运行 $ df 看看结果。
$
sudo umount /mnt