如何在uCLinux中安装NFS的详解

2024-03-25 01:08
文章标签 安装 详解 nfs uclinux

本文主要是介绍如何在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的详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/843393

相关文章

Mysql数据库聚簇索引与非聚簇索引举例详解

《Mysql数据库聚簇索引与非聚簇索引举例详解》在MySQL中聚簇索引和非聚簇索引是两种常见的索引结构,它们的主要区别在于数据的存储方式和索引的组织方式,:本文主要介绍Mysql数据库聚簇索引与非... 目录前言一、核心概念与本质区别二、聚簇索引(Clustered Index)1. 实现原理(以 Inno

使用python生成固定格式序号的方法详解

《使用python生成固定格式序号的方法详解》这篇文章主要为大家详细介绍了如何使用python生成固定格式序号,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录生成结果验证完整生成代码扩展说明1. 保存到文本文件2. 转换为jsON格式3. 处理特殊序号格式(如带圈数字)4

win10安装及配置Gradle全过程

《win10安装及配置Gradle全过程》本文详细介绍了Gradle的下载、安装、环境变量配置以及如何修改本地仓库位置,通过这些步骤,用户可以成功安装并配置Gradle,以便进行项目构建... 目录一、Gradle下载1.1、Gradle下载地址1.2、Gradle下载步骤二、Gradle安装步骤2.1、安

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

MyBatis常用XML语法详解

《MyBatis常用XML语法详解》文章介绍了MyBatis常用XML语法,包括结果映射、查询语句、插入语句、更新语句、删除语句、动态SQL标签以及ehcache.xml文件的使用,感兴趣的朋友跟随小... 目录1、定义结果映射2、查询语句3、插入语句4、更新语句5、删除语句6、动态 SQL 标签7、ehc

详解SpringBoot+Ehcache使用示例

《详解SpringBoot+Ehcache使用示例》本文介绍了SpringBoot中配置Ehcache、自定义get/set方式,并实际使用缓存的过程,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录摘要概念内存与磁盘持久化存储:配置灵活性:编码示例引入依赖:配置ehcache.XML文件:配置

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1