ubifs根文件系统制作

UBIFS是Linux系统中适用于固态存储设备的文件系统,旨在替代JFFS2,具备良好的扩展性和快速挂载等特性。本文介绍了UBIFS的结构、优势以及制作UBIFS文件系统镜像的方法,包括使用mtd-utils工具和ubinize命令。同时,还讲述了内核配置以支持UBIFS,并在u-boot中设置环境变量以烧录和挂载。
摘要由CSDN通过智能技术生成

ubifs文件系统简介

UBIFS(Unsorted Block Image File System,无排序区块图像文件系统)是用于固态存储设备上,并与LogFS相互竞争,作为JFFS2的后继文件系统之一。由于Nand Flash容量的暴涨,JFFS2、Yaffs2等皆无法操控大的Nand Flash空间,IBM、Nokia工程师Thomas Gleixner、Artem Bityutskiy等人2006年发起,致力于开发性能卓越、扩展性高的FLASH专用文件系统,以解决嵌入式环境下以FLASH作为MTD设备使用时的技术瓶颈。真正开始开发于2007年,并于2008年10月第一次加入稳定版本于Linux核心2.6.27版,在设计与性能上均较优于YAFFS2、JFFS2,更实用于MLC NAND FLASH。因为UBIFS是直接工作在Raw Flash设备上(如Nandflash),所以他不能工作在SD卡、U盘这些常用的存储设备上,目前的安卓手机上绝大部分都是使用的UBIFS文件系统。关于UBIFS的更多信息请参考: http://www.linux-mtd.infradead.org/doc/ubifs.html
传统的flash文件系统如Jffs2、yaffs2等是工作在MTD设备层之上,而UBIFS则建立在UBI卷层之上,UBI卷层工作在MTD设备层之上。也可以说,UBIFS涉及三个子系统:

  1. MTD 子系统,提供对flash芯片Raw的访问接口。 MTD子系统提供了MTD device的概念,比如/dev/mtdx(字符设备)和/dev/mtdblockX(块设备);
  2. UBI Subsystem,它工作在MTD设备之上,提供了UBI逻辑卷(类似于Linux服务器上的LVM概念),对上层屏蔽了一些直接使用MTD设备需要处理的问题,如wear-leveling(磨损平衡算法)和volume management(坏块管理)功能等;
  3. UBIFS文件系统,工作于UBI之上。它提供文件的open、read、write等操作;

作为新一代文件系统新贵,他具有如下特性:

  • 可扩展性: UBIFS对Flash 尺寸有着很好的扩展性; 也就是说文件系统挂载时间,内存消耗以及I/O速度都不依赖于Flash的大小; UBIFS可以很好的运行在GB级的 flashe设备; 当然UBI本身还是有扩展性的问题,无论如何 UBI/UBIFS都比JFFS2的可扩展性好,如果UBI成为瓶颈,可以改进UBI而不需改变UBIFS本身;
  • 快速挂载:不像JFFS2,UBIFS在挂载阶段不需要扫描整个文件系统,UBIFS mount的时间只是毫秒级,时间不依赖于Flash的大小;然而UBI的初始化时间依赖Flash的大小,因此必须把这个时间考虑在内。
  • write-back 支持:文件的改变并不是立刻提交到flash media上,而是cache这些修改,直到达到写入的条件,这减少了I/O的数目因此改善I/O性能和系统性能。回写本身也是文件系统的标准技术,由于数据没有立刻写入flash, 回写带来了突然掉电就会存在数据丢失的风险。相反, JFFS2不支持write-back, JFFS2文件系统的所有变化都是立刻同步到flash介质上。同JFFS2的writethrough(立即写入内存)相比可以显著的提高文件系统的吞吐量。
  • 容忍不清洁的重启:UBIFS是日志文件系统,所以容忍突然关闭和不清洁的重启。UBIFS会回放日志并从不切底的重启中恢复过来。这时挂载时间会有点慢。但由于只是需要重做日志,而不需要扫描储存介质,所以性能影响不大。
  • 快速I/O:即使回写功能被禁能(例如在挂载时加入“-o sync”的参数),UBIFS也表现良好,接近jffs2。在同步I/O方面UBIFS是极难与jffs2相抗争的。因为jffs2在flash维护数据索引结构,不需要额外的开销,而UBIFS需要。然而UBIFS依然是很快,因为它依靠日志。它不需要把数据物理地从一个地方移动到另一个地方,仅把有关信息加入文件系统的索引以及为新日志挑选一个擦除块。
  • 快速压缩:与jffs2相似,UBIFS支持数据压缩储存。对于单个文件的储存,UBIFS可以使能/禁能压缩功能。
  • 自恢复功能:有数据索引有损坏的情况下,UBIFS可以恢复过来。在UBIFS每一块信息有描述整个信息的数据头。在扫描介质的情况下这数据头信息可以重建。而在FAT文件系统,发生这样
    的事件是致命的。
  • 数据的完整性:UBIFS在每次写入数据时都会对数据进行核实,以确保数据的完整性。UBIFS不会容忍任何不可用的数据或元数据。然而为了加快数据的读写速度,用户可以关闭CRC检查。

镜像文件制作

mtd-utils不仅提供mkfs.jffs2制作工具,他还提供mkfs.ubifs和ubinize制作工具,mkfs.ubifs他会直接生成一个.img的文件

mkfs.ubifs -h
/*基本用法*/
Options:
-r, -d, --root=DIR       build file system from directory DIR  	//根目录树路径
-m,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值