Segui estas instruções do DebianEeePC HowTo InstallUsingStandardInstaller no Debian Wiki, para escrever uma ISO Debian no meu USB.
dd if=debian-*-netinst.iso of=/dev/sdX
Usando sha1sum
, posso verificar as somas de verificação do meu arquivo ISO baixado. Como posso verificar a soma de verificação do dispositivo USB stick, para garantir que o dispositivo USB não tenha problemas e se o ISO foi copiado perfeitamente?
filesystems
usb
checksum
Vila
fonte
fonte
Respostas:
Você pode usar
cmp
para verificar se tudo foi copiado corretamente:Essa solução não calcula explicitamente a soma de verificação da sua
/dev/sdX
- mas você não precisa fazer isso porque já fez isso para a fonte da comparação (ou sejadebian-X-netinst.iso
).Fazer apenas a
dd if=/dev/sdX | sha1sum
pode gerar uma soma de verificação incompatível apenas porque você obtém os blocos finais (/dev/sdX
provavelmente é maior que o arquivo iso).Por meio de
cmp -n
você, certifique-se de que nenhum bytes à direita/dev/sdX
seja comparado.Se você estiver paranóico com a qualidade do seu dispositivo de armazenamento em massa USB que você chama
sync
, ejete-o, insira-o novamente e faça a comparação - caso contrário, todos ou alguns blocos podem vir apenas da VM do kernels (cache) - quando, na realidade, talvez bits no hardware estão ferrados.fonte
A resposta de Julien faz o trabalho, mas há uma maneira mais simples e rápida de fazer isso:
fonte
head -c $(stat -c '%s' the.iso) /dev/sdc | sha1sum
Basta usar
dd
emd5sum
/sha1sum
é suficiente, mas como dito anteriormente, tenha cuidado, seu dispositivo não é do mesmo tamanho que seu arquivo, portanto, as somas serão diferentes.Aqui como você ainda pode fazê-lo
Primeiro, você precisa saber o tamanho do arquivo:
Então, para ser legal com seus syscalls, é melhor você conseguir isso como um múltiplo de um poder agradável de dois como
4096
, a multiplicação dos dois PRECISA produzir exatamente o tamanho do arquivo, de outras maneiras, você verificará muito poucos ou bytes demais, produzindo uma soma de verificação errada.Estou feliz,
4096 × 244992 = 1003487232
então 4096 é bom para mim (e provavelmente será para você), para que eu possa usar um tamanho de bloco de4096
(típico) e uma contagem de blocos de244992
.Não se esqueça de escrever o arquivo na chave USB ...
E saiba, usando o tamanho de bloco conhecido e a contagem de blocos, você pode ler o número exato de bytes da chave e verificá-los:
(Sim,
md5sum
é muito mais rápido quesha1sum
isso, mas claramente esse não é o seu gargalo aqui, o gargalo é a entrada USB, obrigado por perceber).Ou, resumindo:
fonte
$ dd if=/dev/sdb1 bs=4096 count=<filesize/4096> | md5sum
eu poder verificar o md5sum de uma imagem do Debian gravada em um pendrive e compará-lo com o Debian md5sums.Baseado na resposta de @Kyle Jones
você deve usar
md5sum
porque é mais rápido quesha1sum
(isso poupa tempo ao verificar arquivos grandes)fonte
md5sum
é pelo menos duas vezes mais rápido? É necessário que o OP já possua osha1sum
site de download e não precise calcular isso. E a leitura do USB será um fator limitante, e não o cálculo sha1 / md5.