quarta-feira, 18 de dezembro de 2013

MicroSD falso em 5 gramas de frustração

Problemas com cartões SD não são tão raros, acho que a maioria já sabe que existem limites nos ciclos de escrita e também dos muitos casos de cartões falsos.




Após deixar ligado meu Raspberry Pi 24 horas por dia e 7 dias na semana por meses, meu cartão MicroSD de 2GB ( cartão já usado ) do servidor começou a apresentar falhas. Isso ocorreu mês passado e como há um bom tempo pretendia migrar para o MicroSD de 8GB ( cartão usado também, porém quase novo ) aproveitei a infeliz ocasião para a troca. Após algumas semanas o MicroSD de 8GB começou a apresentar falhas também. Não sou o primeiro a ter problemas desse tipo, há alguns relatos pela internet e um amigo próximo também relatou falhas em cartões.



Os problemas em cartões corrompidos no Raspberry Pi podem acontecer por diversos motivos, mas não necessariamente relacionados a placa. Podem ser por causa de fontes ruins, overclock e problemas com o próprio driver/firmware do Raspberry Pi.

Mas no meu caso, não era simplesmente o sistema de arquivos corrompido, após o erro no cartão de 8GB, resolvi testar fora do Raspberry Pi e ao tentar ler e escrever, ao chegar em certo ponto o erro de input/output era certo. Após algumas tentativas e um zero fill o cartão voltou ao normal, ao menos era o que eu esperava, alguns dias e o mesmo problema de volta. Não era mais um cartão confiável.

Um grande detalhe que ainda não citei é: existem grandes chances de que os dois MicroSD's sejam falsos e o que estampa a capa do post certamente é. Não estou dizendo que originais não dão problema, mas acho que todos devem ter uma noção de que cartões falsos não devem ter uma vida útil muito boa.

Quanto aos originais, tenho visto e recebido recomendações de que os da SanDisk estão no topo em questão de qualidade, meu amigo do começo do post que também roda um servidor 24x7 comprou um e até agora tudo parece bem.

Provisoriamente estou fazendo testes usando um pendrive Kingston original de 4GB como sistema de arquivos root e utilizo um MicroSD de 1GB somente para dar o boot, visto que a única¹ maneira de se dar boot é pelo cartão.

O jeito mais fácil de se fazer isso é gravar a imagem diretamente no pendrive e alterar no cartão sd a partição root no arquivo /boot/cmdline.txt , "root=/dev/partiçãodoseupendriveouhd". Infelizmente para se fazer isso é preciso que o suporte a USB apropriado para o dispositivo esteja compilado juntamente no kernel, no Raspbmc atual isso é feito, mas no Raspbian não.

Original ou não, um dos modos de se aumentar a vida útil do cartão é minimizar a escrita. No caso do Raspbian algumas coisas já são feitas, como utilização de tmpfs por padrão em alguns diretórios como /run e noatime no fstab. Algumas outras modificações podem ser levadas em consideração para mitigar ainda mais a escrita, como por exemplo levar a gravação de logs para tmpfs, desabilitar o arquivo swap e uma outra talvez bem mais radical: desativar totalmente o journaling do sistema de arquivos. No caso de desativar totalmente o journal é uma questão de não se fazer ao menos que saiba o que está fazendo, poderá haver perda de dados caso tenha algum problema como por exemplo falta de energia, não recomendo mas passei a utilizar por que além de ter o backup dos meus arquivos eu rodo o Raspberry Pi com um UPS/Nobreak sendo assim é bem raro ele ter algum problema de falta de energia.

Conclusão

 

Se está tendo problemas só com o sistema de arquivos corrompido, primeiramente verifique sua fonte, se estiver fazendo overclock, desative e atualize sua distro se preciso e o firmware( rpi-update ). Se o cartão é que está com defeitos ou se vai comprar seu primeiro Raspberry Pi, adquira um cartão SD original de um revendedor confiável, SanDisk se possível. Dependendo da situação, principalmente se for precisar abusar da escrita aconselho o uso de um HD externo utilizando um hub USB com fonte.

Uma outra dica antes de comprar seu cartão SD: existe uma grande lista tratando de compatibilidade e problemas, verifique antes de comprar.

[1] Uma curiosidade que poucos sabem é que existe uma forma de dar boot pelo USB no Raspberry Pi model A sem o cartão SD , conseguiram o feito a alguns meses atrás, mas não é possível via mass storage, somente no modo host, necessitando ligar diretamente a um PC. Infelizmente maiores informações não foram ainda publicadas a respeito disso.

3 comentários:

  1. Uma sugestão para o servidor, coloca gerador de energia solar, no DX tem varios modelos, acredito que tenha um compativel, adoraria ler sobre os testes dele funcionando totalmente sem cabo. Abs

    ResponderExcluir
  2. Cartões de memórias atuais que usam a tecnologia MLC não são confiáveis de maneira nenhuma para este fim, quando se exigem leitura/escrita constantes.
    O melhor é substituir se possível por um pendrive com memórias NAND Flash, um pouco mais confiáveis, mas com mesmos problemas de HD SSD.

    ResponderExcluir
  3. Eu trabalho com armazenagem de dados em pen drives e os pen drives novos SanDisk ultimamente estão dando muito problema, assim como você falou eles dão erro de I/O direto, ainda tem pen drives muito antigos Kingstong e SanDisk mas mais aintigos e não dão esse problema ou nunca deram esse problema, realmente quando ele bloqueia a escrita, o pen drive não tem volta atras, ou seja ele tem que ser substituido, porque nem é possivel formatar ele nem linux, nem windows nem no aparelho que ele armazena os dados, simplesmente tem que jogar fora. Acredito tambem que sejam falsos, não pode se confiar mais nem em marcas reconhecidas.

    ResponderExcluir