Excelente artigo sobre os sistemas de arquivos em flash .
Uma questão importante quando se fala em sistemas de arquivos flash é a seguinte: O que é o nivelamento de desgaste? Artigo da Wikipédia . Basicamente, em discos flash você pode escrever um número limitado de vezes até o bloco ficar ruim. Depois disso, o sistema de arquivos (se não houver gerenciamento de nivelamento de desgaste embutido no hardware, como no caso dos SSDs normalmente existem) deve marcar esse bloco como inválido e evitar usá-lo mais.
Sistemas de arquivos típicos (por exemplo, ReiserFS, NTFS, ext3 e assim por diante) são projetados para discos rígidos, que não possuem tais limitações.
JFFS2
Inclui compressão e proteção elegante de nivelamento de desgaste.
YAFFS2
- Única coisa que faz a diferença: tempos de montagem curtos, depois de umount bem-sucedido.
- Implementa a propriedade write once: quando os dados são gravados em um bloco, não é necessário reescrevê-los. Isso é importante, pois reduz o desgaste.
LogFS
- Não é muito maduro, mas já está incluído na árvore do kernel do Linux.
- Suporta sistemas de arquivos maiores que o JFFS2 / YAFFS2 sem problemas.
UBIFS
- Mais maduro que o LogFS
- Suporte ao cache de gravação
- Na escalabilidade: artigo . Em discos grandes, melhor desempenho do que com o JFFS2
ext4
Se nenhum driver ou placa (por exemplo, unidades SSD possuem nivelamento de desgaste interno, pelo menos normalmente) manipulam o nivelamento de desgaste, o ext4 não é a melhor idéia, pois não é destinado ao uso bruto do flash.
Qual é o melhor?
Claro, isso depende do uso e do suporte. Pelo que li na Internet, eu recomendaria o UBIFS. Bom suporte para grandes sistemas de arquivos, fase madura de desenvolvimento, desempenho adequado e sem grandes desvantagens.