5

У меня есть сгоревший DVD с ISO-изображения. У меня также есть sha256 сумма ISO-изображения. Чтобы сравнить хэши, я создал ISO-образ на DVD и выполнил sha256sum image.iso , но он отличается от хеша исходного изображения.

Это правильный способ расчета хеша DVD? Если нет, то почему это не работает?

Изменить: Может кто-то объяснить причину, которую Аарон Миллер предоставил в комментарии. Есть ли способ сделать файл iso с точно такими же параметрами, как и исходный iso?

3 ответа3

6

Единственный способ сделать это - хэшировать сами файлы, а не изображения. Используя такой инструмент, как Febooti Hash & CRC (Windows) или Quick Hash GUI, вы можете просто выбрать все файлы, о которых идет речь, щелкнуть правой кнопкой мыши и записать хэш. Вы также можете сделать то же самое из командной строки с помощью sha256sum . После записи этих файлов на диск перейдите к файлам на диске и проверьте хеш, как вы делали ранее. Хэши должны совпадать.

Дополнительные мысли:

Вы указываете, что ваш текущий процесс заключается в создании ISO из диска, который вы хотите проверить. Я бы сказал, что это лишний и ненужный шаг. Просто вставьте диск и хэшируйте файлы на диске, как я предлагал, и сравните их с хэшем файлов, которые находятся на вашем исходном изображении. Не нужно сначала создавать ISO, так что это должно быть намного быстрее.

3

ОБНОВИТЬ:

Это правильный способ расчета хеша DVD?

Во-первых, возьмите сумму sha256 самого DVD, как это сделано на этом сайте:

... вы уже записали компакт-диск, и теперь вы хотите вернуться и проверить его? Пока у вас есть sha1sum или md5sum, все просто.

...

Дисковод DVD-RW - это /dev /hda

g33kgrrl @ home ~ /Desktop $ sha1sum /dev /hda

89164d79d84f483c3642f25507186e58bf5fc0d8 /dev /hda

Хотя они используют sha1sum, он должен работать так же для sha256sum. Сначала сравните это с хешем вашего оригинального iso.

Если нет, то почему это не работает?

Как указывает этот пользователь:

в некоторых случаях размер может немного отличаться, потому что в копии или исходном изображении есть конечные нули

Он предлагает несколько шагов, чтобы узнать, так ли это, цитата:

Например, если copy.iso меньше, чем orig.iso:

sha1sum copy.iso
head -c $(stat -c %s copy.iso) orig.iso

Конечно, вы также должны проверить, что завершающие байты - это только нули:

od -j $(stat -c %s copy.iso) orig.iso

И, наконец, вернемся к вашему новому вопросу:

Есть ли способ сделать файл iso с точно такими же параметрами, как и исходный iso?

Я еще не нашел способ сделать это. Однако, когда у вас есть хэши каждого шага, вы можете хотя бы увидеть, где произошла разница. Я предполагаю, что программа, которая записывает ваш ISO-файл, выполняет некоторые шаги, которые необходимы для записи, но которые также как-то изменяют образ?

В некоторой степени выходит за рамки этого вопроса, но было бы интересно посмотреть, меняется ли он каждый раз один и тот же. Другими словами, запишите несколько дисков и посмотрите, все ли одинаковые хэши?

Оригинальный ответ:

Не уверен, что это удовлетворит ваш вопрос (возможно, ваше существующее приложение уже выполняет эту функцию)

Но если вы получаете утилиту ImgBurn (утилита Windows, извините), она имеет функцию "проверки" диска с помощью ISO-образа.

Я предполагаю, что под капотом это выполняет некоторые дополнительные шаги для достижения того, что вы пытаетесь сделать. Позор, что это не открытый исходный код, или вы можете проверить код и точно увидеть, что происходит.

Возможно, есть другие утилиты записи, которые имеют схожую функциональность и с открытым исходным кодом?

0

Это сработало для меня (хотя заняло около 20 минут):

# dd if=/dev/sr0 |sha256sum

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .