本文主要是介绍如何在uCLinux中安装NFS的详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
|
近来有些朋友询问NFS mount的详细过程,现整理如下,请指正: 配置环境: 目标机:ANYWHERE-2 + uCLinux 2.4, IP:192.168.0.221 主机OS:PC + REDHAT 8.0,IP:192.168.0.110 ----------------------------------------------------------------------------------- 在内核配置中选择: * your network device (使用缺省值) * TCP/IP Networking (使用缺省值) * File systems -> Network file systems -> NFS File system support * 可能需要NFSv3的支持
在用户配置中选择: * Network->Applications->portmap (推荐) * mount / unmount 命令有两个地方可以选择, Filesystem Applications 或者是 BusyBox。 这里推荐你选BusyBox。关于Filesystem Applications中的mount / unmount,下面再分析。
另外你应该选择RAM disk驱动,这样可以在SDRAM中使用ext2文件系统(在RAM disk所做的修改,当掉电后会消失)。 输入: >mount 看到/var就是使用的RAM disk驱动的ext2文件系统。 输入: >mkdir /var/nfsmount 建立安装点。
在主机上 >mkdir /export 建立输出目录,里面随便放一个文件作为演示,假定为nfs_demo。 ----------------------------------------------------------------------------------- 如果有portmapper,先运行: >portmap& 现在可以安装NFS了: >mount –t nfs 192.168.0.110:/export /var/nfsmount –o nolock 如果你够幸运,你应该安装成功了,输入: >mount 可以看到主机的目录作为NFS文件系统安装在目标机上,输入: >ls /var/nfsmount 可以看到nfs_demo。
如果很不幸,你未安装成功 检查主机的nfs server是否运行,nfs server是否设置了/expor目录。具体的设置查看你的Linux发行版的HELP文件。 另外,如果你运行NFS mount时,如没有响应,检查你主机的安全设定,一定要关闭防火墙。我就是因为防火墙未关闭所以老是运行NFS mount没有响应,让我以为是我目标机的原因,摆弄了两天才想起来是这个愿意。 现在应该没有问题了。
下面讲讲我使用Filesystem Applications中的mount / unmount的经过,尚未mount成功。 编译时会出现警告和错误。 1、 lib/libc/include/linux/nfs_mount.h文件的修改,加上 #include linux/nfs2.h (尖括号不能显示)
2、 user/mount/nfsmount.c文件的修改 NFS_VERSION未定义,我不知道给这个宏赋多大的值,我很随意的 #define NFS_VERSION 2
3、 user/mount/Makefile文件的修改 CFLAGS += -DHAVE_NFS 改为:CFLAGS += -D__KERNEL__ -DHAVE_NFS
经过修改,编译通过,但mount NFS时会出现错误,我怀疑是由于Filesystem Applications中的mount / unmount的版本太老的缘故。 看BusyBox的nfsmount.c,并未引用<linux/nfs_mount.h>头文件,而是自己定义了所需要的数据结构。并且未使用NFS_VERSION,在Filesystem Applications中的nfsmount.c相同的位置,直接使用了常数0。
我就不深入讲了,反正也未成功,而且价值不大,毕竟我们有BusyBox用。当然也可以找一个版本较新的mount文件来,有兴趣的朋友可以试试。
|
这篇关于如何在uCLinux中安装NFS的详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!