Meu Raspberry Pi está danificando permanentemente os cartões SD?

26

Meu Raspberry Pi estava funcionando bem por dois meses. Em seguida, alguns arquivos /usr/binforam corrompidos e houve muitos erros na reinicialização.

Tentei escrever uma imagem nova, mas o dd iria bloquear e não fazer nada.

sudo dd if=~/2013-02-09-wheezy-raspbian.img of=/dev/mmcblk0 bs=4M

Percebi que meu cartão SD não estava listado como compatível, então comecei com um novo cartão SD suportado há uma semana e agora aconteceu o mesmo.

Os cartões parecem estar presos no estado somente leitura dde fdisknão têm impacto.

Puxei o cabo de alimentação algumas vezes para reiniciar após sshparar de funcionar - eu o executo sem um monitor e teclado.

É possível danificar permanentemente um cartão SD puxando o cabo de alimentação?

Eu li sobre cartões SD corrompidos e gostaria de chegar ao fundo desse problema, mas minha preocupação atual é que preciso comprar um novo cartão SD sempre que tentar. Para outras pessoas, eles parecem capazes de começar de novo escrevendo uma nova imagem.

Existe algo mais que eu possa tentar fazer com que os cartões SD funcionem novamente?

Se eu tentar formatar o cartão com a câmera, aparece 'erro de formatação'.

Quando insiro o cartão SD, o dmesg mostra

...
[52254.614980] end_request: I/O error, dev mmcblk0, sector 1696056
[52254.614983] end_request: I/O error, dev mmcblk0, sector 1696064
[52254.614987] end_request: I/O error, dev mmcblk0, sector 1696072
[52254.615058] Aborting journal on device mmcblk0p2-8.
...
[52666.031183] journal commit I/O error
[52666.031186] journal commit I/O error
....
[52666.031220] journal commit I/O error
[52666.031227] journal commit I/O error
[52666.083902] EXT4-fs error (device mmcblk0p2): ext4_put_super:819:     
Couldn't clean up the journal
[52666.083910] EXT4-fs (mmcblk0p2): Remounting filesystem read-only

Atualização: Consegui escrever uma nova imagem no segundo cartão SD, mas o primeiro cartão (Kingston 8 GB classe 4, não na lista de suporte) ainda está quebrado. Como é apenas uma carta que parece quebrada, não estou tão preocupado que isso continue acontecendo. Eu acho que isso foi único.

Meu Raspberry Pi agora raramente é inicializado. Eu verifiquei a voltagem no Raspberry Pi e ela é bastante baixa, então suspeito que seja a causa dos meus problemas. Eu pedi uma nova fonte de alimentação. No entanto, não sei por que o Raspberry Pi funcionou por tanto tempo antes.

Thomas Rynne
fonte
11
Você poderia confirmar que, ao tentar escrever algo em cartões quebrados, está usando outro computador com leitor de cartão SD que funciona bem para outros cartões? Você poderia fornecer o ddcomando que está usando para gravar no cartão? Você poderia verificar dmesgse há algum erro de E / S em sua placa?
precisa saber é o seguinte
Se você for cortar a energia do Pi, verifique se é abrupto e não lento. Puxar o cabo lentamente pode e irá corromper seus cartões SD eventualmente. Eu sugiro fortemente obter uma fonte de energia com um interruptor de energia. Depois que comecei a usar um interruptor, em vez de apenas puxar o cabo de alimentação do Pi, nunca tive um cartão SD corrompido. Além disso, sua escolha de fonte de alimentação é muito importante. Certifique-se de que tenha pelo menos 1000 mA e de saída consistente. Eu também não ligaria o Pi a partir do mesmo hub USB que você está usando para conectá-lo aos dispositivos.
Jerry Gagnon
Tinha o mesmo problema, corrupção absolutamente bizarra, tornando a inicialização um tiro de merda. Depois de obter uma fonte de alimentação certificada dedicada ao Raspberry Pi e um novo cartão SD, todos os meus problemas desapareceram. O cartão SD antigo só poderia ser usado novamente depois de encontrar uma máquina Windows e executar o formatador gratuito de baixo nível da associação SD. Eles afirmam que nenhum formatador de nível de bloco pode produzir a verdadeira formatação de baixo nível necessária para reparar completamente os cartões SD problemáticos. YMYV
rob
Eu tenho três Raspberry Pi e tive o mesmo problema. Agora eu tive dois cartões SD corrompidos e somente leitura, e nenhum truque usando fsck, fdisk ou qualquer outro utilitário no Linux ou Windows os corrigiu. Por um capricho, decidi jogar um dos cartões na minha câmera Samsung e tentar formatá-lo. Para minha surpresa e prazer, a função de formato na câmera restaurou o cartão e é utilizável novamente. Infelizmente, não consigo recuperar o outro cartão com ele, pois é um cartão SD de tamanho completo e não um MicroSD com adaptador e minha câmera possui o slot MicroSD. A câmera é uma Samsung ST72, apenas para sua informação.
Kelli Mac

Respostas:

11

Problemas e possíveis danos

Sim, desligar o Raspberry Pi puxando o cabo pode causar danos . De fato, houve uma resposta que detalhou exatamente esse problema. Esse problema não é específico ao Raspberry Pi. Desconectar o cabo de alimentação sem avisar o sistema operacional pode causar problemas - corrompi meu kernel do Windows dessa maneira.

Como consertar

  1. Mac

Conecte o cartão SD ao Mac. Em seguida, abra o utilitário Disk e exclua suas partições. Então restaure. Finalmente, recrie novamente a imagem do cartão. Se precisar de mais ajuda, consulte este tutorial .

  1. janelas

Use o software Win32 Disk Imager . Mais uma vez, exclua as partições, restaure-as e crie novamente uma imagem do cartão.

  1. Linux

Para redefinir o SD para leitura / gravação, digite hdparm -r0 /dev/xxxno terminal. Pode ser necessário excluir as partições primeiro.

Como evitar

A partir de agora, você nunca deve desligar o Raspberry Pi desconectando-o . Em vez disso, vá para o console e digite:

sudo shutdown -h now

Ou, se você estiver usando startx, clique no botão logoff e selecione encerrar.

xxmbabanexx
fonte
14
Tanto quanto sei, não é possível danificar o próprio cartão SD, retirando a energia. É possível danificar o sistema de arquivos no cartão, no entanto.
precisa saber é o seguinte
2
A maioria dos sistemas de arquivos modernos trabalha com sistemas de arquivos e não será corrompida pela perda de energia dessa maneira (embora eles possam perder as alterações mais recentes). No entanto, os cartões de memória tendem a mentir para o kernel sobre o que foi sincronizado. Isso leva a sistemas de arquivos corrompidos.
Dongar
Tive interrupções inesperadas de energia no meu cartão SD, para onde "nenhuma limpeza e nova geração de imagens" levaria, parecia haver setores defeituosos que fariam a reinstalação falhar. Eu tive que comprar um novo cartão. Então, sim, você pode danificar o próprio cartão.
Yamikuronue
Outra maneira mais curta de desligar o pi é 'sudo halt'.
Matthew
Uma maneira melhor de reformatar os cartões SD no Windows e Mac OS é usar o SD Formatter da SD Association . É a maneira oficial como você deve colocar cartões de formato rígido.
scruss
5

O problema é que você não pode acessar o console porque o Raspberry Pi está travado, o SSH funciona parcialmente, mas não aceita uma senha, e o WebIDE da Adafruit está travado e não aceita entrada. Não há escolha a não ser puxar o plugue. Cerca de 25% das vezes isso funciona, mas é inevitável que o sistema de arquivos seja corrompido eventualmente. A situação piora, mesmo que o carregador de inicialização o leve ao kernel, ele também está travado e você não pode digitar nada para fsck o cartão. Reimaginar significa perder todo o seu trabalho. Definitivamente, precisamos de uma solução melhor.

user1718232
fonte
2

Você pode usar 'hdparm -r0 / dev / xxx' para redefini-lo para leitura e gravação. Pessoalmente, tive que excluir as partições e reinserir o sdcard para poder usar o dd para copiar uma nova imagem no cartão.

Steven Verborgh
fonte
Eu tentei isso, mas dd ainda bloqueia. Eu acho que o cartão deve estar quebrado.
Thomas Rynne
0

Existe uma solução melhor - basta colocar o cartão em um leitor conectado a outra máquina e executar o fsck nessa máquina [então espero que funcione!]. Obviamente, o problema real é ter que executar o fsck em primeiro lugar - o que geralmente pode ser evitado desligando a máquina adequadamente, em vez de puxar a energia, independentemente de ser ou não decapitado.

Apenas eu
fonte
0

Depois que o dd falhou repetidamente em um cartão SD, usei uma máquina Windows 7 para excluir as partições e reformatar como FAT32 . Só então dd me daria uma imagem de Raspberry Pi funcional.

Agora, eu costumo executar o seguinte antes de dd (ou dcfldd) -ing uma nova imagem:

time dcfldd if=/dev/zero of=/dev/sdc statusinterval=1 sizeprobe=of

A fonte que sugeriu /dev/zeroobservou que o processo pode reduzir a vida útil do cartão.

roubar
fonte