Erro de bit aleatório do cartão SD ao ler, sem falha

2

Eu tenho uma implantação de cerca de 20 Raspberry Pis com cartões Micro SD HC Class 10 U1 de 16 GB da Kingston, todos clonados a partir de uma imagem Raspbian personalizada idêntica. Um pequeno texto no cartão diz:

SDC10B2/16GB 31608-010-A00LF TAIWAN

Esta configuração está funcionando há cerca de 6 meses e cerca de 10 dos cartões foram quebrados com algumas características estranhas.

Os primeiros cartões quebraram em semanas de implantação. É certo que houve algum registro extensivo naquele momento. Além disso, algumas placas foram quebradas sem o log de aplicativos ativado - apenas o log Raspbian normal. Mesmo com o registro elevado, os cartões devem ter durado alguns anos, considerando os ciclos de gravação.

Por acaso, eu estava logado em alguns raspi no momento em que esse problema ocorreu e o que eu notei:

  • binários do sistema, como vim e sudo não conseguiriam carregar bibliotecas compartilhadas ( .so files)
  • Meu próprio código-fonte teria erros de byte aleatório quando visualizado no editor
  • fazer o download novamente da minha fonte e gravar em arquivos iria corrigir isso para esses arquivos, por enquanto.

Agora passei por todas as placas com falha e percebi que todas elas estão acessíveis e legíveis no meu Mac. Eu escrevi um script para verificar todos os arquivos na partição /boot 10 vezes, medi o tempo e contei diferentes somas de verificação.

Em uma placa de trabalho normal, demoraria em média 0,3 segundo a cada iteração e, claro, retornaria uma soma de verificação idêntica todas as vezes.

Mas nessas placas com falha, os tempos são muito mais altos - de 7 a 20 segundos por iteração e retornariam soma de verificação diferente em cada execução de alguns dos arquivos. Os erros não acontecem em todos os arquivos, mas principalmente os mesmos arquivos em todos os cartões (últimos arquivos em ordem alfabética).

Exemplo de execução (o número atrás do nome do arquivo é a contagem de diferentes somas de verificação):

Asexecuçõesrepetidasemumdoscartõesquedãoerroapenasemumarquivo,resultariamemalgoentre4-10somasdeverificaçãodiferentes.Aseguir,umalistade5checksums,emordemdeaparição:

["9c91d29a602ac91b6db803aff2589099", "4c5e5e134bdd74c385b3ad69b28ea724", "9c91d29a602ac91b6db803aff2589099", "9c91d29a602ac91b6db803aff2589099", "9c91d29a602ac91b6db803aff2589099", "4ea7e6b69623405081f4db7a80d62bb4", "5a9d78acb7eefbc9839bab3fcc3f7599", "9c91d29a602ac91b6db803aff2589099", "1d6f8ad8a528e0abae0f00032eeb712b", "9c91d29a602ac91b6db803aff2589099"]

Como visto - uma soma de verificação pode ser repetida mesmo depois de dar resultados diferentes entre eles.

Para recapitular: o sistema de arquivos está acessível, a placa parece funcionar corretamente, mas a leitura repetida dos arquivos fornece resultados diferentes, inutilizando-os. Parece que alguns blocos no cartão apenas retornam lixo quando lidos.

PERGUNTA 1 : Essa corrupção está relacionada ao desgaste de gravação no cartão e, em caso afirmativo, há alguma distribuição de Raspberry lá fora otimizada para uso de baixa gravação a longo prazo?

PERGUNTA 2 : Isso se deve a cartões baratos e eu deveria comprar os melhores? Quais?

    
por Laas 15.06.2018 / 15:23

0 respostas