我正在将一个产品从jffs2文件系统迁移到ubifs。
以前的jffs2设计包含3个mtd分区(2个ro和1个rw )。
移动到ubifs -我是否应该创建:
基本上,我是在问是否应该在移动到ubifs时用卷替换分区?(我的理解是,如果这样做,ubi层将管理整个闪存)
谢谢,Ran
发布于 2016-10-30 15:55:05
选择是存在的,这里有好处..。
一个mtd分区和3个卷
UBI层将管理卷。这是一个闪存虚拟化层,它将不可靠的闪存转换成可靠的内存。UBI层确实是磨损平整的。即使是只读数据,偶尔重写数据也是有益的。这将为浮动门等充电,使数据在更长时间内保持可读性。对于读写数据,这是非常有益的长寿。UBI磨损平整将在所有卷进行。这大大增加了文件系统可以处理的擦除写入周期。
3个mtd分区,每个卷1个
这通常不太理想,但也有好处,而且可能适合某些用户。主要有一个单独的分区增加了安装单个卷的可靠性。如果单个MTD分区发生了什么情况,那么整个闪存可能就无法使用了。通过分离MTD分区,当读写文件系统失败时,只读MTD/UBI/UbiFS系统可以使用。
这对第三种选择更有好处,
具有混合文件系统的多个MTD。
在某些闪存设备中放置CramFS、RomFS是可能的,其中设备块是由制造商提供可靠的。这可能是一个引导文件系统,这是系统所需的最低限度的功能。操作这些分区的工具非常简单(与UBI/UbiFS相比),并且可以在最小的代码空间中实现。有些系统有较大的DDR和较小的片上SRAM.加载器/闪存可能有有限的代码空间。
也就是说,最近(最近两年) mtd-效用包含了UBI解析代码。这可能需要移植到闪光灯、恢复代码等。恢复代码可能位于附加的initrd分区中,它可以对UBI/UbiFS分区进行安装/故障安全恢复。
UbiFS包含管理和操作UBI/UbiFS代码的代码,它在许多平台上使用两个阶段的引导(从内部SRAM运行,配置DDR,然后迁移),在引导加载程序中具有丰富的功能。U引导本身将需要在另一个设备或在一个单独的MTD,如上文所述。
第二个选项3 mtd分区,每个分区一个卷可能是最不可能/最理想的。第一种将有利于系统/闪存寿命。最后一个将提供更高的可靠性/恢复的简单性。最好的情况将取决于分区上的数据和可用于恢复数据的非linux资源。愉快的媒介是给UBI尽可能多的NAND闪存空间,并在需要逻辑分区时使用卷。
通常,我会问为什么要使用卷,在这种情况下只将所有的数据放在一起,但这同样取决于数据的性质。
https://stackoverflow.com/questions/39960861
复制相似问题