如何使用具有特定集群大小的更强大的 Linux 可用文件系统格式化 SD 卡以获得更好的写入性能?

Har*_*vey 5 linux sd-card filesystems ext3 fat32

目标:格式化microSD卡...

  • 最佳写入性能
  • 仅用于嵌入式 Linux
  • 为了更好的可靠性(可能会发生随机电源故障)
  • 使用 64kB 的簇大小

我正在使用 8GB microSD 卡在嵌入式 Linux/ARM 设备中存储数据。SD 卡不可移动。我一直在使用 ext3 而不是预先安装的 FAT32,因为它似乎可以更好地处理写入过程中的随机电源故障。但是,我一直注意到我的写入性能总是最好使用金士顿预装的 FAT32。如果我用 FAT32 重新格式化卡,性能仍然会受到影响。浏览维基百科后,我偶然发现以下评论说某些卡针对特定集群大小进行了优化。就我而言,金士顿预先格式化为 64kB 集群大小。

重新格式化的风险

使用不同的文件系统甚至相同的文件系统重新格式化 SD 卡可能会使卡变慢或缩短其使用寿命。一些卡使用磨损均衡,其中频繁修改的块在不同时间映射到内存的不同部分,一些磨损均衡算法是为 FAT16 或 FAT32 设备上文件分配表的典型访问模式设计的。 [60] 此外,预先格式化的文件系统可能使用与卡上物理内存的擦除区域相匹配的簇大小;重新格式化可能会改变集群大小并降低写入效率。

Hub*_*rio 3

大多数 SD 卡(以及 USB 驱动器)都针对 FAT32 进行了优化。将它们与任何其他 FS 一起使用将导致您的性能受到影响。

更多信息请访问LWN