嵌入式Linux系统开发——文件系统的分区与挂载文件的正常读写和保存。所谓分区就是将硬盘划分为多个空间范围,我们可以将不同的文件存放在不同的分区中,方便管理。格式化分区后的硬盘空间,就是按照文件系统格式划分存储单元,以便操作系统能够识别和使用这些空间范围。硬盘在视觉上可以等同于一座城市。分区就是把城市分成几个区。格式化就是在每个区指定相应的街道和门牌号,以便人们快速找到指定的地方。闪存在嵌入式Linux中被广泛用作存储介质。闪存具有可靠性高、存储密度高、价格低廉、非易失性、擦写方便等优点。文件系统也可以运行在Flash上??,其中针对Flash存储器的特点设计的jffs2(journalingflashfilesystemversion2)文件系统非常适合。由于Flash中每个block的最大擦除次数是有限的,jffs2文件系统具有磨损均衡功能,可以平均使用每个block,延长Flash的整体寿命。jffs2文件系统还具有存储空间分片收集功能,提高Flash内存的利用率。最重要的是,jff2文件系统作为日志文件系统,可以避免意外断电导致的数据丢失。在Linux中,mtd(memorytechnologydevices)是为了文件系统更好的访问Flash内存而设计的,提供了一系列对Flash操作的标准接口,使得jffs2文件系统可以建立在mtdforFlash中的mtd_block模块上操作。一般情况下,Linux的基本分区会包括uboot、kernel和rootfs。我们可以通过挂载分区来访问更多的分区。本文主要介绍如何在Flash介质上实现分区和jffs2文件系统格式化,并将其挂载到Linux系统中。分区与目录树的关系Linux中所有的数据都是以文件的形式呈现的,所有的文件都在目录树结构下。目录树(directorytree)是一种以根目录为基础,向下呈现分支的文件系统目录结构。系统规定了每个目录的作用和目录中文件的类型。最上层是根目录(/),/其他目录如dev、/etc、/mnt都是根目录的子节点。根文件系统分区挂载在根目录下。如果没有挂载其他分区,根目录下的所有目录都在根文件系统分区下。任何目录下实际的读写操作都是根文件系统分区。当我们要使用其他分区时,必须将这个分区挂载到一个已经存在的目录(如/mnt等),或者挂载到我们自己创建的目录(如/mnt/media)。挂载后,该目录成为该分区的访问入口,该目录之前的内容将不复存在,所以/lib、/dev、/etc、/usr等存放系统文件的目录无法挂载,否则操作系统将无法找到所有需要的文件而导致死机。文件系统格式Linux系统中的每个分区都需要一个文件系统。这些属于不同分区的独立文件系统分别挂载在目录树中,形成系统目录层次结构。可以使用flash_erase工具将分区格式化为jffs2文件系统。flash_erase工具的使用说明如下。root@Yuanxiao:/sbin#flash_erase--helpUsage:flash_erase[options]MTD_DEVICE
