Basta usare dd
e md5sum
/ sha1sum
è sufficiente, ma come detto in precedenza, fai attenzione, il tuo dispositivo non ha le stesse dimensioni del tuo file, quindi le somme differiranno.
Ecco come puoi ancora farlo
Per prima cosa devi conoscere la dimensione del file:
$ stat -c '%s' debian-live-8.2.0-amd64-lxde-desktop.iso
1003487232
Quindi, per essere cool con i tuoi syscalls, è meglio ottenere questo come multiplo di un bel potere di due simili 4096
, la moltiplicazione dei due DEVE produrre esattamente la dimensione del file, in altri modi, controllerai troppo pochi o troppi byte, dando un checksum errato.
$ bc
bc 1.06.95
scale = 9
1003487232 / 4096
244992.000000000
Sono felice, 4096 × 244992 = 1003487232
quindi 4096 è buono per me (e lo sarà per te, probabilmente), quindi posso usare una dimensione del blocco di 4096
(tipica) e un conteggio dei blocchi di 244992
.
Non dimenticare di scrivere il file sulla chiave USB ...
$ dd if=debian-live-8.2.0-amd64-lxde-desktop.iso of=/dev/sd? && sync
E sai, usando la dimensione del blocco noto e il conteggio dei blocchi, puoi leggere il numero esatto di byte dalla chiave e controllarli:
$ dd if=/dev/sdb bs=4096 count=244992 | sha1sum
b0dbe4ca8f526d1e43555459c538607d4a987184
(Sì, md5sum
è molto più veloce di quello, sha1sum
ma chiaramente non è il tuo collo di bottiglia qui, il collo di bottiglia è il throughput USB, grazie per averlo notato).
O, in breve:
dd if=/dev/sdb bs=4096 count=$(($(stat -c '%s' the.iso) / 4096)) | sha1sum