Um problema é que o disco rígido NÃO se encaixa necessariamente em blocos de 16MB e, como resultado, o último, digamos 15MB da unidade, são dados aleatórios da fábrica ou algum tipo de formatação do Windows, que gera um MD5 diferente.
Não há nada para md5 de / dev / zero! É virtual. Primeiro verifique o tamanho do setor lógico / físico!
sudo fdisk -l /dev/sdb
Para uma nova unidade, ela deve ser 4096. Isso significa que você pode preencher sua unidade com 4096 blocos (tamanho de bloco) de zeros completamente, então:
dd if=/dev/zero of=/dev/sdb bs=4096 conv=notrunc,noerror & pid=$!
kill -USR1 $pidnumer
Você pode omitir o "conv = notrunc, noerror & pid = $!" partes; O kill -USR1 $ pidnumer mostra até onde o zeramento progrediu. conv e noerror apenas garantem que cada bloco seja julgado e sob erro (os erros são mostrados no terminal) o zeramento continua. mais @
man dd
Você também pode tentar apenas zerar os últimos 20M da unidade calculando quantos setores existem e quantos você precisa pular (verifique fdisk -l para o tamanho do disco em bytes). 2.000.000.000.000 bytes / 4096 = 488281250 setores no total. 20.000.768 bytes / 4096 = 4883setores 488281250-4883 = 488276367 setores a procurar
dd if=/dev/zero of=/dev/sdb bs=4096 seek=488276367 conv=notrunc,noerror & pid=$!
verifique novamente o md5 Se houvesse erros de entrada / saída, dd mostraria isso de qualquer maneira. Melhores ferramentas de teste de HDD são smartmontools
smartctl -a / dev / sdb Procure por Reallocated_sectors, reallocated sector count, offline incorrigível, setores pendentes. E log de erro. Quaisquer valores daqueles mencionados anteriormente são más notícias e trazem o disco rígido para garantia. também você pode tentar bonnie ++ por exemplo criar uma partição no disco usb (não importa qual tipo), formatá-lo e montá-lo para, por exemplo, / dev / sdb1
bonnie++ -u root -d /mnt/sdb1 -n 10:100000000:100:4096 -x 3 -m 5gb
E verifique os resultados de bonnie e também / var / log / syslog e outros logs para erros de saída de entrada.