Basta usar dd
e md5sum
/ 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:
$ stat -c '%s' debian-live-8.2.0-amd64-lxde-desktop.iso
1003487232
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.
$ bc
bc 1.06.95
scale = 9
1003487232 / 4096
244992.000000000
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 de 4096
(típico) e uma contagem de blocos de 244992
.
Não se esqueça de escrever o arquivo na chave USB ...
$ dd if=debian-live-8.2.0-amd64-lxde-desktop.iso of=/dev/sd? && sync
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:
$ dd if=/dev/sdb bs=4096 count=244992 | sha1sum
b0dbe4ca8f526d1e43555459c538607d4a987184
(Sim, md5sum
é muito mais rápido que sha1sum
isso, mas claramente esse não é o seu gargalo aqui, o gargalo é a entrada USB, obrigado por perceber).
Ou, resumindo:
dd if=/dev/sdb bs=4096 count=$(($(stat -c '%s' the.iso) / 4096)) | sha1sum