文档介绍:什么是UBI文件系统? 什么是UBI文件系统?请认识到以下几点: lUBI不是一个flash转换层(FTL),并且和FTL没有任何关系。 lUBI只支持纯粹的flash,消费flash像MMC、RS-MMC、Emmc、SD、mini-pactFlash、MemoryStick、USBflashdrive等设备,UBI都是不支持的。请不要混淆这些。以下网址会介绍rawflash和FTL设备的不同。 UBI(拉丁语的意思:哪?)代表UnsortedBlockImages(未分类块镜像)。对flash设备来说它是一个卷管理系统,它管理着多个逻辑卷,而这些逻辑卷是基于一个单独的flash芯片的(逻辑块和物理块请参看),并且它可以将IO加载扩展至整块芯片(比如,损耗平衡)。在linux-,谈到Flash文件系统,大家很多时候多会想到cramfs、jffs2、yaffs2等文件系统。它们也都是基于文件系统+mtd+flash设备的架构。linux-,内核加入了一种新型的flash文件系统UBI(UnsortedBlockImages)。这里简单介绍下UBI文件系统加入的原因,及使用方法。我也是刚接触到这个文件系统,可能有理解不对的地方,也请指正。一、产生的背景 FLASH具有的“先擦除再写入”、坏块、“有限的读写次数”等特性,目前管理FLASH的方法主要有: 1、采用MTD+FTL/NFTL(flash转换层/nandflash转换层)+传统文件系统,如:FAT、ext2等。FTL/NFTL的使用就是针对FLASH的特有属性,通过软件的方式来实现日志管理、坏块管理、损益均衡等技术。但实践证明,由于知识产权、效率等各方面因素导致本方案有一定的局限性。 2、采用硬件翻译层+传统文件系统的方案。这种方法被很多存储卡产品采用,如:SD卡、U盘等。这种方案对于一些产品来说,成本较高。 3、采用MTD+FLASH专用文件系统,如JFFS1/2,YAFFS1/2等。它们大大提高了FLASH的管理能力,并被广泛应用。 JFFS2、YAFFS2等专用文件系统也存在着一些技术瓶颈,如:内存消耗大,对FLASH容量、文件系统大小、内容、访问模式等的线性依赖,损益均衡能力差或过渡损益等。在此背景下内核加入了UBI文件系统的支持。二、用法环境:omap3530处理器、(128MByte16位NANDFlash)、linnux- 1、配置内核支持UBIFS DeviceDrivers--->MemoryTechnologyDevice(MTD)support--->UBI-Unsortedblockimages--->EnableUBI 配置mtd支持UBI接口 Filesystems--->Miscellaneousfilesystems--->UBIFSfilesystemsupport 配置内核支持UBIFS文件系统 2、将一个MTD分区4挂载为UBIFS格式●flash_eraseall/dev/mtd4//擦除mtd4 ●ubiattach/dev/ubi_ctrl-m4//和mtd4关联●ubimkvol/dev/ubi0-Nrootfs-s100MiB//设定volume大小(不是固定值,可以用工具改变)及名称●mount-tub