nfs起根文件系统
- 格式:doc
- 大小:787.50 KB
- 文档页数:6
mount命令+nfs挂载各个参数解释以及常见失败原因Mount 命令[转]mount [-afFhnrvVw] [-L<标签>] [-o<选项>] [-t<文件系统类型>] [设备名] [加载点]用法说明:mount可将指定设备中指定的文件系统加载到Linux 目录下(也就是装载点)。
可将经常使用的设备写入文件/etc/fastab,以使系统在每次启动时自动加载。
mount加载设备的信息记录在/etc/mtab文件中。
使用umount命令卸载设备时,记录将被清除。
常用参数和选项:-a 加载文件/etc/fstab中设置的所有设备。
-f 不实际加载设备。
可与-v等参数同时使用以查看mount的执行过程。
-F 需与-a参数同时使用。
所有在/etc/fstab中设置的设备会被同时加载,可加快执行速度。
-h 显示在线帮助信息。
-L<标签> 加载文件系统标签为<标签>的设备。
-n 不将加载信息记录在/etc/mtab文件中。
-o<选项> 指定加载文件系统时的选项。
有些选项也可在/etc/fstab中使用。
这些选项包括:async 以非同步的方式执行文件系统的输入输出动作。
atime 每次存取都更新inode的存取时间,默认设置,取消选项为noatime。
auto 必须在/etc/fstab文件中指定此选项。
执行-a参数时,会加载设置为auto的设备,取消选为noauto。
defaults 使用默认的选项。
默认选项为rw、suid、dev、exec、anto nouser与async。
dev 可读文件系统上的字符或块设备,取消选项为nodev。
exec 可执行二进制文件,取消选项为noexec。
noatime 每次存取时不更新inode的存取时间。
noauto 无法使用-a参数来加载。
nodev 不读文件系统上的字符或块设备。
noexec 无法执行二进制文件。
根文件系统的移植1.下载busybox-1.13.4.tar.bz2网址:/2.解压busybox-1.13.4.tar.bz2到桌面[root@localhost Desktop]# tar-xjvf busybox-1.13.4.tar.bz2-C./[root@localhost Desktop]# cd busybox-1.13.4[root@localhost busybox-1.13.4]#3.编辑Makefile文件[root@localhost busybox-1.13.4]# gedit Makefile将CROSS_COMPILE ?=改为CROSS_COMPILE ?=/usr/local/arm/3.4.1/bin/arm-linux-将ARCH ?= $(SUBARCH)改为ARCH ?= arm4.进行默认配置[root@localhost busybox-1.13.4]# make defconfig //恢复默认配置5.对配置信息进行修改[root@localhost busybox-1.13.4]# make menuconfigHOSTLD scripts/kconfig/mconfHOSTCC scripts/kconfig/lxdialog/checklist.oHOSTCC scripts/kconfig/lxdialog/inputbox.oHOSTCC scripts/kconfig/lxdialog/lxdialog.oHOSTCC scripts/kconfig/lxdialog/menubox.oHOSTCC scripts/kconfig/lxdialog/msgbox.oHOSTCC scripts/kconfig/lxdialog/textbox.oHOSTCC scripts/kconfig/lxdialog/util.oHOSTCC scripts/kconfig/lxdialog/yesno.oHOSTLD scripts/kconfig/lxdialog/lxdialogscripts/kconfig/mconf Config.in在弹出的TUI界面中进行如下配置:检查Miscellaneous Utilities--->taskset 是否去除同时设置如下:Busybox Settings --->Build Options --->[*]Build BusyBox as a static binry (no shared libs) //选用静态连接[*]Build with Large File Support (for accessing files > 2 GB)(/usr/local/arm/3.4.1/bin/arm-linux-) Cross Compiler prefixInstallation Options --->[*] Don't use /usr(./_install) BusyBox installation prefix //安装路径Busybox Library Tuning --->(6) Minimum password length(2) MD5: Trade Bytes for Speed[*] Faster /proc scanning code (+100 bytes)[ ] Support for /etc/networks[*] Command line editing(1024) Maximum length of input[*] vi-style line editing commands(15) History size[*] History saving[*] Tab completion[*] Username completion[*] Fancy shell prompts //Setting this option allows for prompts to use things like \w and// \$ and escape codes.[ ] Give more precise messages when copy fails (cp, mv etc)(4) Copy buffer size, in kilobytes[ ] Use clock_gettime(CLOCK_MONOTONIC) syscall[*] Use ioctl names rather than hex values in error messages[*] Support infiniband HW设置完毕后,保存、退出。
详细解读NFS 文件系统源代码NFS 文件系统概述NFS(Network File System,网络文件系统)是一种基于网络的文件系统。
它可以将远端服务器文件系统的目录挂载到本地文件系统的目录上,允许用户或者应用程序像访问本地文件系统的目录结构一样,访问远端服务器文件系统的目录结构,而无需理会远端服务器文件系统和本地文件系统的具体类型,非常方便地实现了目录和文件在不同机器上进行共享。
虽然NFS 不是唯一实现这个功能的文件系统,但它无疑是最成功一个。
NFS 的第一个版本是SUN Microsystems 在20 世纪80 年代开发出来的,至今为止,NFS 经历了NFS,NFSv2,NFSv3 和NFSv4 共四个版本。
现在,NFS 最新的版本是4.1,也被称为pNFS(parallel NFS,并行网络文件系统)。
前四个版本的NFS,作为一个文件系统,它几乎具备了一个传统桌面文件系统最基本的结构特征和访问特征,不同之处在于它的数据存储于远端服务器上,而不是本地设备上,因此不存在磁盘布局的处理。
NFS 需要将本地操作转换为网络操作,并在远端服务器上实现,最后返回操作的结果。
因此,NFS 更像是远端服务器文件系统在本地的一个文件系统代理,用户或者应用程序通过访问文件系统代理来访问真实的文件系统。
众所周知的是,NFS 的客户端在访问远端服务器文件系统时,既需要通过服务器获得文件的属性信息,还需要通过服务器获得文件的数据信息,这使得NFS 天然地具备将文件的属性信息和数据信息分离在不同服务器上进行访问的特性,于是最后一个版本NFS4.1/pNFS,将Lustre/CephFS/GFS 等集群文件系统的设计思想引入到自身中,成为一个具有里程碑意义的NFS 版本。
它使得NFS 的数据吞吐的速度和规模都得到了极大提高,为NFS 的应用带了更为广阔的空间。
NFS 之所以备受瞩目,除了它在文件共享领域上的优异表现外,还有一个关键原因在于它在NAS 存储系统上应用。
NFS参数配置详细说明1、NFS概述NFS:Network file system,网络文件系统;由sun公司1984年推出,用来在网络中的多台计算机间实现资源共享(包括象文件或cd-rom);设计的目的是:实现在不同系统间交互使用,所以它的通信协议采用与主机和操作系统无关的技术;NFS Server可以看作是File Server,它可以让你的PC通过网络将远端得NFS SERVER共享出来的档案MOUNT到自己的系统中,在CLIENT看来使用NFS的远端文件就象是在使用本地文件一样;NFS协议从诞生到现在有多个版本:NFS V2(rfc1094),NFS V3(rfc1813)(最新的版本是V4(rfc3010);如何查看nfs当前的版本:rpm -qi portmaprpm -qi nfs-utilsNFS服务器的安装:可以由多种安装方法:----在安装linux系统时选择安装nfs服务对应的组件;(多数linux发行版本默认安装)----安装nfs的rpm套件包(手动安装)rpm -ivh rpm包需要5个RPM包。
setup-*:共享NFS目录在/etc/exports中定义(linux默认都安装)initscripts-*:包括引导过程中装载网络目录的基本脚本(linux默认都安装)nfs-utils-*:包括基本的NFS命令与监控程序portmap-*:支持安全NFS RPC服务的连接quota-*:网络上共享的目录配额,包括rpc.rquotad (这个包不是必须的)----也可以去下载nfs的源代码包,进行编译安装;RPC(Remote Procedure call) NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。
而这些传输协议用到这个RPC功能的。
可以说NFS本身就是使用RPC的一个程序。
或者说NFS也是一个RPC SERVER.所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。
6网络文件系统(NFS)的工作原理和应用技术郭英见图2R PC 工作过程计算机网络的软件环境包括网络协议和网络操作系统两个方面:网络协议用于实现各种操作系统的网络连接和数据通信;而网络操作系统是网络协议中的网络服务系统,是网络的核心。
工业标准的网络文件系统NFS 由于具有网络操作系统文件服务器的功能,且使用维护均比较方便,从而也被广泛地应用在各系统中。
本文从N FS 工作原理和应用技术两方面深入讨论N FS 。
一、网络文件系统NFS 的工作原理N FS 包括N FS 服务器和N FS 客户两部分,采用星型拓扑结构连接。
NFS 服务器是中心,N FS 客户是端点,见图1。
N FS 服务器:提供共享本地硬盘上的任何文件系统或目录等文件信息的计算机。
N FS 客户:能够安装远地文件系统和目录,并且从其他计算机上获取文件信息的计算机。
N FS 服务器与N FS 客户之间并无严格的界定,多任务的操作系统可同时作为客户和服务器,读取网络上其他正在访问自己硬盘的计算机上的文件。
为了NFS 的开发应用专门引入了远程过程调用RPC(Remote Pr ocedure Call)的概念,RPC 过程调用可以作为对话层和报文交换器用于所有的NFS 的应用程序。
RPC 由一系列过程组成,这些过程可以视为处理任何所需网络访问的高层应用程序,即可以透明地访问远地文件系统。
R 通过网络作用于客户和服务器之间,具体工作过程是首先客户向服务器发出请求报文,服务器接收到报文后,从中提取出请求,然后执行请求的过程,并且将结果汇编成响应报文。
客户将接收到的报文响应后,对报文进行反汇编,继续执行应用程序的正常过程。
这个过程的每一步都由RPC 程序库(与应用程序相连)的例程控制。
见图2。
二、网络文件系统NFS 的配置由于N FS 是由N FS 客户和N FS 服务器组成的,所以N FS 的配置就需分成NFS 服务器的配置和N FS 客户的配置。
网络文件系统(NFS)一、NFS简介1、NFS就是Network File System的缩写,它的最大功能就是可以通过网络让不同的机器,不同的操作系统彼此共享文件(share files)——可以通过NFS挂载远程主机的目录,访问该目录就像访问本地目录一样,所以也可以简单的将它看作一个文件服务器(File Server)。
注意:一般而言,使用NFS服务能够方便地使各unix-like系统之间实现共享,但如果需要在unix-like和windows系统之间共享,那就得使用samba了。
2、NFS是通过网络进行数据传输,那么NFS使用哪些端口呢,答案是……不知道,因为NFS传输数据时使用的端口是随机的,唯一的限制就是小于1024,客户端怎么知道服务器使用的是哪个端口,此时就要用到远程过程调用RPC。
其实,NFS运行在SUN的RPC(Remote Procedure Call,远程过程调用)基础上,RPC 定义了一种与系统无关的方法来实现进程间通信,由此,NFS Server也可以看作是RPC Server。
正因为NFS是一个RPC服务程序,所以在使用它之前,先要映射好端口——通过portmap设定。
比如:某个NFS Client发起NFS服务请求时,它需要先得到一个端口(port),所以它先通过portmap得到port number(不仅是NFS,所有的RPC服务程序启动之前,都需要先设定好portmap)。
注意:在启动RPC服务(比如NFS)之前,需要先启动portmap服务。
3、NFS允许系统将其目录和文件共享给网络上的其他系统。
通过NFS,用户和应用程序可以访问远程系统上的文件,就像它们是本地文件一样。
那么NFS最值得注意的优点有:(1)本地工作站可以使用更少的磁盘空间,因为常用数据可以被保存在一台机器上,并让网络上的其他机器可以访问它。
(2)不需要为用户在每台网络机器上放一个用户目录,因为用户目录可以在NFS服务器上设置并使其在整个网络上可用。
[希望号机器人]希望电子-家电管家V1.2 诞生了2011-02-18 21:12:53| 分类: 希望号机器人 | 标签:mini2440从存储卡启动 | 订阅mini2440从存储卡启动(根文件系统):方便维护的好方法!今天讨论的主题是如何较为方便地传送调试程序并及时备份文件系统。
如果我说在linux 开发时使用串口传送需要调试的程序,再用串口备份文件系统中重要文件,必定有人会笑了:那都是远古时代的事了,现在都用nfs 了!连根文件系统都能直接挂在nfs 上!是的。
nfs 是太方便了。
然而这种方便是建立在复杂网络的基础上的。
很多人肯定会同意这样的评论:nfs 建立不容易,在实体linux 下固然稳定,然而在虚拟机中,实在是难以恭维,一不小心环境就坏了。
有没有一种既能方便开发调试后的文件系统备份,又能十分方便建立使用环境的方法呢?且看下文。
不要惊讶:使用你手中的存储卡。
也许你会说,这种方法还没有串口方便!反复复制!别说是备份系统了,就是一个文件都太麻烦了!别急,我们自有理由。
这种方法不使用任何网络资源,不占用复杂的接口电路,它的使用仅仅需要两个条件:内核支持内嵌的mmc 驱动,内核支持某种文件系统,如yaffs,ext,cramfs,fat ,甚至ntfs 。
我们要做的就是将存储卡挂载为根文件系统,并从其根目录下启动。
这样所有工作中的数据都被完整地记录在存卡中了,需要修改文件(尤其是修改重大启动文件时),只需将卡从开发板上取下,放在读卡器中,甚至不需要虚拟机就能直接对文件进行修改:windows 下有支持linux 分区的工具的。
如果存储卡是fat 格式,那就更方便了。
此外,这种方法更方便于普通用户的固件升级:不需要专业刷机工具,无任何风险,即可刷机。
具体操作方法:1.格式化存储卡为ext2格式(本文以它为例)2.确保内核内嵌支持mmc 驱动和ext2文件系统,而不是模块支持。
此法成败的关键所在。
嵌入式Linux NFS根文件系统的构建及研究作者:康天下支剑锋来源:《现代电子技术》2012年第04期摘要:在嵌入式Linux系统开发过程中,根文件系统是构建嵌入式Linux系统的重要组成部分。
为了方便和简化嵌入式Linux开发过程中的调试过程,主要研究了如何使用Busybox构建出基本的嵌入式Linux根文件系统,包括Busybox的配置、编译和安装。
在此基础上,进一步构建出基于NFS的嵌入式Linux根文件系统,并给出了启动脚本和配置文件。
这种根文件系统可以方便地在线更改、调试程序,降低了嵌入式系统的开发门槛。
关键词:NFS; Busybox;根文件系统; S3C2440; Linux中图分类号:; TP311文献标识码:A文章编号:Construction and research of embedded Linux NFS root file system(Xi’an University of Science and Technology, Xi’an 710054, China)Abstract: In the process of the embedded Linux system development, the root file system is an important part of building the embedded Linux system. In order to facilitate and simplify the debugging phase of embedded Linux development process, this paper mainly researches how to build a basic embedded Linux root file system with Busybox, including the configuration, installation andembedded Linux root file system was built. The startup script and configuration file are given in this paper. This root file system can be easily changed and debugged online, and reduces the threshold of embedded systems development.Keywords: NFS; Busybox; root file system; S3C2440; Linux收稿日期:随着信息技术的发展,嵌入式系统技术已经广泛应用于国防、通信、工业控制、消费电子等诸多领域。
1为什么要制作nfs起根文件系统
制作用于mini2440开发板使用的内核,并使用nfs起根文件系统。
2应用arm平台的linux2.6.29内核。
首先清理内核中间文件,配置文件
命令#cd /home/guoqian/4-3-1
#cd linux-2.6.29
#make distclean
3选择参考配置文件
为了使制作的内核支持nfs起根文件系统,选择config-mini2440作为配置文件。
修改配置文件CMDLINE,修改代码如下:
******************************************************************************* CMDLINE=”root=/dev/nfs nfsroot=192.168.14.2:/nfsroot/rootfs
ip=192.168.1.55 rw console=ttySAC0 mem=64M”
******************************************************************************* 解释:CMDLINE:命令行启动参数定义了内核挂载根文件系统的方式
(1)root=/dev/nfs →表示内核采用nfs方式起根文件系统
(2)nfsroot=192.168.14.2:/nfsroot/rootfs →表示nfs起的根文件系统位于nfs服务器/nfsroot/rootfs目录,服务器IP地址为192.168.14.2
(3)ip=192.168.1.55 →开发板IP地址,要求与服务器IP地址在同一网段
(4)rw →文件系统可读可写
(5)console=ttySAC0 mem=64M →ttySAC0作为控制台,内存64M
4配置内核
命令#make menuconfig ARCH=arm CROSS_COMPILE=arm-linux-
要使内核支持nfs起根文件系统,内核必须选上如下的配置选项:
File system→Network File Systems→
选择
<*> NFS client support
[*] MFS client support for NFS version 3
[*] Root file system on NFS
选择完成后退出保存。
5编译内核
命令#make ulmage ARCH=arm CROSS_COMPILE=arm-linux-
以下就是我编译完成后生成的内核映像ulmage。
其位于arch/arm/bootm目录下。
6将ulmage拷贝到tftp服务项目/tftpboot
命令#cp arch/arm/boot/ulmage/tftpboot
#ls /tftpboot
7在PC机和mini2440开发板接好电源、串口、网线。
并打开超级终端正确配置超级终端端
口,开发板上电,超级终端输出以下信息
8配置uboot保证网络可用
虚拟机IP地址#setenv serverip 192.168.14.2
开发板IP地址# setenv ipaddr 192.168.14.55
网卡的物理地址# setenv ethaddr 00:01:02:03:04:05
# seven
9测试网络是否可用
#ping 192.168.14.2
输出语句hose 192.168.14.2 is alive说明我的网络可用。
10在u-boot中通过tftp下载内核
命令#tftp 31000000 ulmage
(把server<IP=环境变量中设置的serverip>中服务目录下的ulmage通过TFTP读入到mini2440开发板内存地址0x31000000处
内核已经成功下载到内存中
11启动内核
命令#bootm 31000000
内核已经成功启动,并使用NFS方式起根文件系统。