Eu tenho desenvolvido um make target que usa dd
(na verdade, dcfldd
) para escrever uma imagem Raspbian Jessie em um cartão SD. O alvo é apenas
flash:
sudo dcfldd bs=4M if=$(IMGPATH) of=$(SDX)
sync
em que $ (SDX) é / dev / sdc. Veja esta questão para mais alguns detalhes.
Em um ponto, eu removi o cartão SD do leitor de cartão USB, testei-o no Raspberry Pi e fiz algumas anotações para alterações no script. No entanto, esqueci de retirá-lo do RPi e colocá-lo de volta no leitor (que ainda estava no soquete USB) antes de chamar o alvo do make novamente. Estranhamente, nenhum erro foi lançado; mas o ~ 4GB de dados foi "escrito" em segundos.
Depois disso, colocar o cartão corretamente e chamar o alvo novamente resultou na mesma "cópia" super rápida, mas o cartão não pareceu ser alterado.
Eu tentei reformatar o cartão várias vezes com a ferramenta "Discos" no Ubuntu e com o gparted, mas a única maneira de fazê-lo piscar corretamente novamente era reinicializar a máquina. Claro, eu também tentei remover e reinserir o leitor da tomada USB.
Com o leitor inserido, mas sem cartão, vejo apenas / dev / sdc. Com o cartão também inserido, vejo / dev / sdc, / dev / sdc1 e / dev / sdc2 (com a imagem Raspbian no cartão).
Estou me perguntando
- Onde estava o dd colocando os dados que ele achava que estava escrevendo?
- Havia alguma maneira de redefinir o leitor de cartão sem reiniciar?