Estou executando o Ubuntu 18.04.1 em uma máquina virtual (VMWare) em um host Windows. Estou tentando zerar um cartão SD inteiro usando dd. Isso faz parte do processo que uso para liberar o Linux incorporado ao grupo de software (as imagens do cartão SD são compactadas muito melhor quando os dados vazios do FS são todos 0).
O comando que estou usando é: sudo dd if=/dev/zero of=/dev/sdc bs=4M status=progress
e conclui com sucesso; Recebo a impressão dos registros transferidos e uma mensagem dizendo que não há espaço no dispositivo. Se eu fizer um sudo cat /dev/sdc | hexdump
para examinar o conteúdo do disco, porém, o disco ainda estará cheio de dados e não será zeros (e não apenas no final).
Eu tenho que especificar o número de bytes do cartão SD para que ele funcione de forma consistente? Eu não tenho esse problema toda vez que zero um cartão SD.
Saída completa do console:
gen-ccm-root@ubuntu:~$ sudo dd if=/dev/zero of=/dev/sdc bs=4M status=progress
15929966592 bytes (16 GB, 15 GiB) copied, 1274 s, 12.5 MB/s
dd: error writing '/dev/sdc': No space left on device
3799+0 records in
3798+0 records out
15931539456 bytes (16 GB, 15 GiB) copied, 1274.19 s, 12.5 MB/s
gen-ccm-root@ubuntu:~$ sudo cat /dev/sdc | hexdump
[sudo] password for gen-ccm-root:
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
0101000 2004 0000 6004 0000 0000 0000 0000 0000
0101010 0000 0000 0000 0000 0000 0000 0000 0000
*
0101400 2005 0000 6005 0000 0000 0000 0000 0000
...
Como dito nos comentários, o sdcard estava com badblocks.
A solução que propus foi executar:
CUIDADO: isso é destrutivo de dados como
dd if=/dev/zero
.E o usuário recebeu algo como:
Mostrando que o sdcard foi danificado.
O sdcard foi substituído e o problema foi resolvido.
usar
e veja o resultado por exemplo:
talvez seja diferente na sua saída!
agora você deve usar: