Acabei de comprar um novo cartão CF para minha DSLR. Testei-o usando o Xbench (Mac OS X) e ele executa conforme o esperado. No entanto, eu gostaria de fazer uma "varredura de superfície" (termo do prato móvel) para verificar se há "setores defeituosos" (termo do prato móvel). Eu poderia basear scripts em processos usando dd, mas tenho a sensação de que há uma maneira melhor por aí. Meu objetivo é saber conclusivamente que um cartão de memória (CF, SD etc.) é seguro para uso em uma sessão de fotos, e isso não precisa ser devolvido antes que a janela de política de fornecedores de 30 dias expire.
Eu definitivamente quero soluções para Mac fornecidas aqui. Eu também gostaria de receber algumas sugestões do Linux. Vamos até agradar os usuários do Windows apenas para que essa pergunta possa atender às necessidades de todos.
fonte
Respostas:
Como o controlador pode mover os blocos para onde quiser (consulte nivelamento de desgaste), a única chance de um teste de leitura / gravação completo é encher o disco e comparar. Várias vezes com diferentes padrões, é claro, para ter certeza.
E você ainda não detectará regiões defeituosas, pois elas também ficam ocultas pelo controlador, desde que ele tenha peças de reposição.
fonte
A memória flash não funciona da mesma maneira que os discos com pratos. O conceito de "setor defeituoso" não existe realmente com a memória flash. Hoje em dia, com memória flash e SSDs, o controlador interno cuida da identificação e marcação de blocos de memória inutilizáveis, movendo dados dinamicamente para mitigar as limitações de gravação de blocos etc. Esses recursos são muito mais comuns nos SSDs, mas alguns também existem em cartões flash de qualidade (como SanDisk).
A maioria das ferramentas de verificação de sistemas de arquivos faz suposições específicas sobre a estrutura física do dispositivo de armazenamento (ou seja, com base em prato, com cilindros físicos, setores, clusters etc.), ou trabalha em um nível abstrato e faz reparos "virtualmente" usando arquivo ou diretório tabelas. Você precisaria de uma ferramenta projetada especificamente para marcar blocos defeituosos em um dispositivo de memória flash, pois qualquer outra coisa causará mais problemas (supondo que ele possa corrigir os problemas da mesma maneira que faria com um dispositivo baseado em prato) ou tornar virtual correções que não levam em consideração os recursos dinâmicos do flash no nível do hardware. Mesmo se você pudesse marcar um "setor" ou "cluster" específico como 'ruim', isso não seria necessariamente bom, pois esses conceitos físicos não existem realmente na memória flash. Se o dispositivo flash for mais avançado e mover dados dinamicamente para ignorar automaticamente os blocos defeituosos e atenuar as limitações de gravação, a localização física dos dados poderá residir em um bloco defeituoso um momento e em um bom bloco um momento depois. (Observe que a idéia de um bloco "ruim" na memória flash é muito mais confusa do que nos discos de bandeja ... um bloco de memória flash tende a morrer lentamente, e não repentinamente, e pode "piscar" entre um legível e um não legível. pouco antes de se tornar totalmente inutilizável.)
De um modo geral, quando se trata de flash, permita que o dispositivo se gerencie de uma perspectiva de bloco ruim. Diferentes fabricantes estruturam e armazenam dados de maneiras diferentes, e cada um pode ter níveis e quantidades diferentes de comportamento dinâmico que move os dados para evitar algumas limitações da memória flash. Tentar gerenciar você mesmo provavelmente causará mais problemas do que resolve e pode tornar seus discos flash inúteis a longo prazo.
Se você deseja evitar cartões de memória ruins, recomendo o uso de marcas respeitáveis. Eu tentei uma variedade de cartões flash no passado, no entanto, a SanDisk é a única marca que eu usei que, pelo menos até o momento, nunca falhou. Eu tenho vários cartões SDHC de 4, 8 e 16 GB que uso muito, e regularmente tiro a câmera e insiro no laptop ou computador, e eles ainda estão funcionando perfeitamente. (Alguns têm vários anos.)
fonte
No Linux, o comando que você deseja é
badblocks
. Parece haver uma porta disso para o Mac OS X como parte dessa porta ext2-for-os-x - instale tudo e ignore tudo, menos o/usr/local/sbin/badblocks
comando.Dito isso, isso ajudará no teste, mas não acho que seja conclusivo, porque, primeiro, como diz Leonidas, você realmente não tem acesso bruto à memória flash, por isso é difícil fazer uma varredura completa e também porque novas falhas podem aparecer após o teste, talvez até desencadeadas por ele.
fonte
Lendo seu comentário abaixo da pergunta, acredito que a F3 faz exatamente o que você deseja. Compila no Linux / Mac OS X e também está disponível via Homebrew.
fonte
Achei isso no google, não estou usando cartões SD para armazenamento de câmeras, mas sim a minha classe 10 de 32 GB de sdhc sandisk completamente corrompida depois de menos de 2 anos de uso na minha galáxia S2 da Samsung.
Estou usando badblocks para ver onde os primeiros badblocks começam e, em seguida, farei partições nessa área, se possível. esta é a minha solução atual, muito, muito ruim: /
fonte