Eu tenho um novo projeto Linux incorporado chegando. A equipe de hardware escolheu um chip MMC Flash (peça # MTFC64GJVDN-4M) para a memória não volátil do sistema; folha de dados em http://www.micron.com/parts/nand-flash/managed-nand/mtfc64gjvdn-4m-it .
Qual seria o melhor sistema de arquivos Linux para usar com esta parte? Acredito que seja um dispositivo do tipo bloco, portanto os sistemas de arquivos do tipo JFFS2 MTD não serão adequados, pois operam com o flash bruto. Estou procurando pela confiabilidade primeiro, depois pelo desempenho como secundário.
Também entendo que esses dispositivos MMC são como as "tripas" de um cartão SD, ou seja, possuem controladores internos. Eu tive uma péssima experiência com falhas de cartões SD antes, tive falhas de hardware nas quais o cartão fica ilegível. Como estava usando o sistema de arquivos ext3, estou pesquisando para ver se há algo melhor para este novo projeto.
fonte
Respostas:
Se o seu sistema de arquivos for somente leitura, use ext2. Isso é comprovadamente estável por várias décadas, é rápido, eficiente, suporta propriedade, suporta bits de permissão e tem uma enorme base de usuários, como toda caixa Linux suporta. Em outras palavras, ele suporta tudo o que um sistema Linux decente exige.
Se a opção somente leitura não for uma opção, sua próxima melhor aposta será ext3. Além de todas as propriedades fornecidas com o ext2, o ext3 traz registro no diário. Isso significa que todas as alterações no disco são confirmadas apenas depois de realmente serem gravadas no disco. Tecnologia comprovada e muito estável. Um problema com o ext3 é o nivelamento de desgaste.
O Ext4 melhora o desempenho em vários casos de uso, mas vem com mais sobrecarga da CPU. Hoje, a maioria das distribuições é padronizada como ext4. Aparentemente, reduz gravações desnecessárias, o que é bom para um SSD. Ext4 tem uma extensão TRIM.
Em seguida na linha BTRFS. Não vá lá. Embora várias distribuições ofereçam BTRFS ou até mesmo o padrão, não era estável na última vez que o testei (H2 2012). Você não deseja usar um sistema de arquivos que não se provou estressado. Muitos erros estão sendo corrigidos.
O Linux oferece muitos sistemas de arquivos, mas os que eu mencionei acima são os mais comuns.
Claro que existe o FAT32 (vfat), não vá lá. É antigo, sofre fragmentação e não permite permissões de propriedade e arquivo.
O NTFS é de código fechado, nem pense nisso. Sim, meio que funciona no Linux, mas a implementação é totalmente baseada em engenharia reversa (porque a Microsoft não divulga nenhum detalhe técnico) e a implementação do Linux simplesmente não é confiável.
Um JFFS2 precisa ser totalmente digitalizado em uma montagem, portanto, o tempo de montagem aumenta linearmente com o tamanho do dispositivo. Isso é causado pelo fato de não haver algum tipo de estrutura em árvore para armazenar arquivos.
fonte
Parece ser uma parte do eMMC (lembre-se do pequeno "e" na frente). Basicamente, isso significa que este é um "cartão SD soldável". Você pode compará-lo com um cartão SD e não com um NAND-Flash. Além disso, isso significa que ele possui uma lógica adicional, como a lógica de desgaste, e também possui uma interface MMC e NÃO uma interface NAND-Flash.
Como o cartão já inclui o Wear-Logic, o sistema de arquivos real não importa tanto. É mais uma questão de preparar sua partição (por exemplo, partições somente leitura).
Caso você realmente queira avaliar sistemas de arquivos, o seguinte deve estar ok (sem ordem específica): F2FS, BTRFS, EXT4.
Entenda também que, dependendo do seu controlador, o gerenciador de inicialização ou similar será colocado em uma posição muito específica fora de qualquer sistema de arquivos.
fonte