dd para dirigir que não está lá [duplicado]

1

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

  1. Onde estava o dd colocando os dados que ele achava que estava escrevendo?
  2. Havia alguma maneira de redefinir o leitor de cartão sem reiniciar?
por tsbertalan 25.07.2016 / 03:08

1 resposta

1

Verifique se /dev/sdc é, de repente, um arquivo normal cheio de seus dados. Embora eu normalmente espere que seja um arquivo especial que esteja conectado a um dispositivo ativo ou que contenha "erros não encontrados", pode haver circunstâncias em que o arquivo especial foi acidentalmente excluído. Você teria que ser root para fazer isso, mas eu já me dediquei à situação antes e seus sintomas são muito familiares.

Se ele for excluído, será necessário ler o comando mknod para recriá-lo.

    
por 25.07.2016 / 03:31