Я следовал этим инструкциям DebianEeePC HowTo InstallUsingStandardInstaller на вики Debian, чтобы записать ISO- образ Debian на мой USB.
dd if=debian-*-netinst.iso of=/dev/sdX
Используя sha1sum
, я могу проверить контрольные суммы моего загруженного файла ISO. Как я могу проверить контрольную сумму USB-накопителя, чтобы убедиться, что USB-накопитель не имеет каких-либо проблем и что ISO-образ был скопирован идеально?
filesystems
usb
checksum
Деревня
источник
источник
Ответы:
Вы можете использовать
cmp
для проверки, все ли хорошо скопировано:Это решение явно не вычисляет контрольную сумму вашего
/dev/sdX
- но вам не нужно делать это, потому что вы уже сделали это для источника сравнения (то естьdebian-X-netinst.iso
).Выполнение всего лишь
dd if=/dev/sdX | sha1sum
может привести к неправильной контрольной сумме только потому, что вы получаете конечные блоки (/dev/sdX
скорее всего, больше, чем iso-файл).Посредством
cmp -n
вы убедитесь, что никакие конечные байты на вашем/dev/sdX
не сравниваются.Если вы не уверены в качестве своего запоминающего устройства USB, которое вы называете
sync
, извлеките его, вставьте заново, а затем проведите сравнение - в противном случае все или некоторые блоки могут просто исходить из ядра VM (кеш) - когда в действительности, возможно, биты на железе облажались.источник
Ответ Жюльена делает свою работу, но есть более простой и быстрый способ сделать это:
источник
head -c $(stat -c '%s' the.iso) /dev/sdc | sha1sum
Достаточно просто использовать
dd
иmd5sum
/sha1sum
, но, как уже было сказано ранее, будьте осторожны, ваше устройство не того же размера, что и ваш файл, поэтому суммы будут отличаться.Вот как ты еще можешь это сделать
Для начала вам нужно узнать размер файла:
Затем, чтобы быть крутым с вашими системными вызовами, вы должны получить это кратное хорошей степени двух, например
4096
, умножение двух ДОЛЖНО дать точно такой же размер файла, другими словами, вы будете проверять слишком мало или слишком много байтов, что приводит к неправильной контрольной сумме.Я счастлив,
4096 × 244992 = 1003487232
так что 4096 хорошо для меня (и будет для вас, вероятно), поэтому я могу использовать размер блока4096
(типичный) и количество блоков244992
.Не забудьте записать файл на USB-ключ ...
И знаете, используя известный размер блока и количество блоков, вы можете прочитать точное количество байтов ключа и проверить их:
(Да,
md5sum
это намного быстрее, чем это,sha1sum
но это явно не ваше узкое место, узкое место - это пропускная способность USB, спасибо, что заметили).Или, короче говоря:
источник
$ dd if=/dev/sdb1 bs=4096 count=<filesize/4096> | md5sum
я смог проверить md5sum образа Debian, записанного на флешку, и сравнить его с Debian md5sums.Основано на ответе @Kyle Jones
Вы должны использовать,
md5sum
потому что это быстрее, чемsha1sum
(это сэкономит время при проверке большого файла)источник
md5sum
, по крайней мере, в два раза быстрее? Это должно быть, так как ОП уже есть наsha1sum
сайте загрузки и не должен рассчитывать это. И чтение с USB будет ограничивающим фактором, а не вычислением sha1 / md5.