在 MMC 内存芯片上使用的最佳 Linux 文件系统?

电器工程 linux 闪光 可靠性
2022-02-06 07:43:31

我有一个新的嵌入式 Linux 项目即将推出。硬件团队为系统的非易失性存储器选择了 MMC 闪存芯片(部件号 MTFC64GJVDN-4M);http://www.micron.com/parts/nand-flash/managed-nand/mtfc64gjvdn-4m-it上的数据表

与这部分一起使用的最佳 Linux 文件系统是什么?我相信它是一个块类型的设备,所以 JFFS2 MTD 类型的文件系统不适合,因为它们在原始闪存上运行。我首先要寻找可靠性,然后才是性能。

据我了解,这些 MMC 设备就像 SD 卡的“内脏”,即有自己的板载控制器。我以前遇到过 SD 卡故障的非常糟糕的经历,我遇到过硬件故障,卡变得无法读取。那是使用 ext3 文件系统,所以我正在研究这个新项目是否有更好的东西。

2个回答

如果您的文件系统是只读的,请使用 ext2。几十年来,它被证明是稳定的,快速、高效、支持所有权、支持权限位并拥有庞大的用户群,因为每个 Linux 机器都支持它。换句话说,它支持体面的 Linux 系统所需的一切。

如果只读不是一个选项,那么您的下一个最佳选择是 ext3。除了 ext2 自带的所有属性外,ext3 还带来了日志功能。这意味着磁盘上的每个更改只有在实际写入磁盘后才会提交。非常稳定,经过验证的技术。ext3 的一个问题是磨损均衡。

Ext4 在几个用例中提高了性能,但带来了更多的 CPU 开销。今天的大多数发行版都默认使用 ext4。显然它减少了不必要的写入,这对 SSD 来说是件好事。Ext4 有一个 TRIM 扩展。

接下来是 BTRFS。不要去那里。尽管有几个发行版提供 BTRFS 甚至默认使用它,但我上次测试它时它并不稳定(H2 2012)。您不想使用尚未在压力下证明自己的文件系统。正在修复太多错误。

Linux 提供了丰富的文件系统,但我上面提到的那些是最常见的。

当然有FAT32(vfat),不要去那里。它很旧,存在碎片,并且不允许所有权和文件权限。

NTFS 是闭源的,别想了。是的,它有点适用于 Linux,但实现完全基于逆向工程(因为 Microsoft 没有发布任何技术细节),而且 Linux 实现并不可靠。

JFFS2 需要在挂载上完全扫描,因此挂载时间随设备大小线性增加。这是因为没有某种树结构来存储文件。

这似乎是一个 eMMC 部分(注意前面的小“e”)。基本上这意味着这是一个“可焊接的 SD 卡”。您可能想将其与 SD 卡而不是 NAND 闪存进行比较。此外,这意味着它具有额外的逻辑,例如磨损逻辑,并且它还具有 MMC 接口而不是 NAND-Flash 接口。

由于该卡已经包含 Wear-Logic,因此实际的文件系统并不重要。这更多的是准备分区(例如只读分区)的问题。

如果您真的想评估文件系统,以下应该没问题(没有特定顺序):F2FS、BTRFS、EXT4。

还要了解,根据您的控制器,引导加载程序或类似文件将放置在每个文件系统之外的非常特定的位置。