Objetivo: cartão microSD formatado...
- para melhor desempenho de gravação
- para uso somente com Linux embarcado
- para melhor confiabilidade (podem ocorrer falhas de energia aleatórias)
- usando um tamanho de cluster de 64 KB
Estou usando um cartão microSD de 8 GB para armazenamento de dados dentro de um dispositivo Linux/ARM incorporado. O cartão SD não é removível. Tenho usado o ext3 em vez do FAT32 pré-instalado porque parece lidar melhor com falhas aleatórias de energia durante as gravações. No entanto, continuei percebendo que meu desempenho de gravação é sempre melhor com o FAT32 pré-instalado da Kingston. Se eu reformatar o cartão com FAT32, o desempenho ainda será prejudicado. Depois de navegar na Wikipedia, me deparei com o seguinte comentário dizendo que alguns cartões são otimizados para tamanhos de cluster específicos. No meu caso, o Kingston vem pré-formatado para um tamanho de cluster de 64kB.
Reformatar um cartão SD com um sistema de arquivos diferente, ou mesmo com o mesmo, pode tornar o cartão mais lento ou reduzir sua vida útil. Algumas placas usam nivelamento de desgaste, no qual blocos frequentemente modificados são mapeados para diferentes partes da memória em momentos diferentes, e alguns algoritmos de nivelamento de desgaste são projetados para os padrões de acesso típicos da tabela de alocação de arquivos em um dispositivo FAT16 ou FAT32. Além disso, o sistema de arquivos pré-formatado pode usar um tamanho de cluster que corresponda à região de apagamento da memória física no cartão; a reformatação pode alterar o tamanho do cluster e tornar as gravações menos eficientes.
Responder1
A maioria dos cartões SD (bem como unidades USB) disponíveis no mercado são otimizados para uso com FAT32. Usá-los com qualquer outro FS prejudicará seu desempenho.
Mais informações emLWN.
Responder2
Note oFerramenta de formatação de associação de cartão SDfaz o seguinte para você.
Ainda não tenho a resposta completa para todos os dispositivos. No entanto, aqui está a resposta para placas de 8GiB usando FAT32.
Particione a placa de forma que a partição FAT32 comece no setor 8.192, que fica a 4 MiB do início do disco. Em seguida, formate a partição FAT32 com clusters de 32 KiB e defina o número de "setores reservados" de forma que a área de dados, cluster 2, da partição FAT32 comece no setor lógico 8.192 (ou 8 MiB desde o início do disco (4 MiB desde o início da partição).
Use 32kiB clusters
| 4MiB | 4MiB | remainder of disk |
| ------- | --------------------------------- | ------------------ |
| MBR | First Partition Header + FAT tables | First Partition Data |
Resumo do raciocínio: a SD Card Association recomendou esses limites de 4 MiB como zonas otimizadas e recomenda FAT32 como sistema de arquivos para esses cartões de tamanho. O chip controlador no cartão é otimizado para pequenas leituras/gravações naquela segunda área de 4 MiB.
Há muito mais do que isso, mas essa é a resposta rápida e suja. O método acima funciona apenas para discos <16GiB para clusters de 32kiB e <32GiB para clusters de 64kiB. Suspeito que em tamanhos de disco maiores, a área de dados é aumentada para 8 MiB lógicos, mas não tenho um disco maior que 8 GiB para usar.