Достаточно просто использовать ddи md5sum/ sha1sum, но, как уже было сказано ранее, будьте осторожны, ваше устройство не того же размера, что и ваш файл, поэтому суммы будут отличаться.
Вот как ты еще можешь это сделать
Для начала вам нужно узнать размер файла:
$ stat -c '%s' debian-live-8.2.0-amd64-lxde-desktop.iso
1003487232
Затем, чтобы быть крутым с вашими системными вызовами, вы должны получить это кратное хорошей степени двух, например 4096, умножение двух ДОЛЖНО дать точно такой же размер файла, другими словами, вы будете проверять слишком мало или слишком много байтов, что приводит к неправильной контрольной сумме.
$ bc
bc 1.06.95
scale = 9
1003487232 / 4096
244992.000000000
Я счастлив, 4096 × 244992 = 1003487232так что 4096 хорошо для меня (и будет для вас, вероятно), поэтому я могу использовать размер блока 4096(типичный) и количество блоков 244992.
Не забудьте записать файл на USB-ключ ...
$ dd if=debian-live-8.2.0-amd64-lxde-desktop.iso of=/dev/sd? && sync
И знаете, используя известный размер блока и количество блоков, вы можете прочитать точное количество байтов ключа и проверить их:
$ dd if=/dev/sdb bs=4096 count=244992 | sha1sum
b0dbe4ca8f526d1e43555459c538607d4a987184
(Да, md5sumэто намного быстрее, чем это, sha1sumно это явно не ваше узкое место, узкое место - это пропускная способность USB, спасибо, что заметили).
Или, короче говоря:
dd if=/dev/sdb bs=4096 count=$(($(stat -c '%s' the.iso) / 4096)) | sha1sum