Предположим, на CD/DVD был записан образ sep2006.iso.Вычисляем для него контрольную сумму:
$ cat sep2006.iso | md5sum
cc363de222ba6fe7455258e72b6c26ca -Определяем число записанных в iso 2048 блоков:
$ echo $(( $(ls -l sep2006.iso | awk '{ print $5 }') / 2048 ))
169383
или после выполнения mkisofs запоминаем цифру в строке "169383 extents written (330 MB)"Вычисляем контрольную сумму записанного диска:
$ dd if=/dev/hdc bs=2048 count=169383 | md5sum
cc363de222ba6fe7455258e72b6c26ca -URL: http://www.g-loaded.eu/2006/10/07/verify-a-burned-cddvd-imag.../
Обсуждается: http://www.opennet.me/tips/info/1216.shtml
Мне кажется, что это слишком сложно, не универсально и не удобно в использовании. Проще так: перед формированием образа в корне будущего диска сделать что-то вроде
find . -type f -exec md5 {} \; | sort >CHECKSUM.MD5
это под фрёй. под линуксом можно использовать не md5, а md5sum. (рекомендую использовать sort, как у меня, отсортированные файлы проще сравнивать) теперь закатываем CHECKSUM.MD5 в iso вместе со всеми остальными. теперь можно будет проверить не только целостность всего диска, но и определить, какой файл побился.
тоже конечно вариант, но под фрей есть mtree, и оно делает вообще все о чем вы упомянули, плюс определяет изменение директорий, файлов и прав доступа.
Зато ты так нифига не определишь побитость служебных областей диска (загрузочные образа, скрытые файлы, оглавление директорий и прочая нефайловая дрянь которой на сидюках есть).А этот метод дает однозначный ответ - или точная копия исошки или нет.
Ну как же не определю? ,-) Мне ж, чтобы суммы посчитать надо будет прочитать и файлы, и области и прочие. Если побилась сама файловая система, то я это сразу пойму.
Есть, конечно области, без которых можно файлы прочитать; но пусть побилась какая-нибудь загрузочная область. Метод кнота скажет только "диск битый -- выкини его", что именно побилось будет не ясно, хотя файлы-то целы и доступны. Мой метод скажет "файлы целы и доступны". Кроме того, я предлагаю хранить сумму на самом диске, а где предлагает хранить её кнот?
Для "косметики": раз уж использовали awk, вторую команду можно упростить:
$ ls -l sep2006.iso | awk '{ print $5/2048 }'
Не советую так упрощать, ибо получится другое:
$ echo $((2/3))
0
$ echo 2 | awk '{print $1/3}'
0.666667
Можно и так:
$ ls -l sep2006.iso | awk '{ print int($5/2048) }'
--
$ echo 2 | awk '{print int($1/3)}'
0Однако, если размер .iso не пропорционален 2048, то правильный ли он?
или нужно еще прибавлять 1?:
$ echo 2 | awk '{print int($1/3)+1 }'
1
А вот это вообще интересный вопрос :-)
Я никогда не видел образа не кратного 2048, но(!) мы-то говорим о проверке целостности информации. Не об идеальном, а о покоцаном образе.
А я думал, что мы говорим о сравнении информации в .iso файле и записанной на болванку. Если ИЗО покоцан, то на болванке уж точно покоцано. Какой смысл сравнивать?
так мы же сравниваем два исо: исходный и тот, что на болванке. они оба исо (иначе бы не совпадали :)).
а что просто
diff /dev/cd0 image.iso
нельзя?
Представь, сколько это времени займёт и ресурсов...
у меня это занимает 2 минуты, если диск полный.
быстрее просто cd не читается.
Примерно такие вопросы меня и мучают 90% времени, когда я сюда заглядываю :) Советы на вопрос "как посмотреть файл" типа:
cat `ls filename.txt` |more:-) Будьте проще, парни.
Интересно, при каких обстоятельства тест может не пройти? Сектор либо читается либо не читается, а неправильно записанным... наверное уже прошли те времена.ИМХО надо проверять не на соответствие, а на читабельность. А для этого есть qpxtool и еще несколько утилит (сейчас не вспомню каких именно). А этот тест будет проходить всегда, при условии если нет битых секторов.
Кстати, а если будет битый сектор, от этот тест просто повесит процесс, точнее процесс будет идти минут 20-30 (в зависимости от кол-ва битых секторов), а ты будешь гадать: просто сектор долго читается или битые сектора, будешь жать Ctrl-C, смотреть логи. Ерунда все это!
а зачем эти танцы с dd если можно просто cat /dev/hdc | md5sum ?
> Сектор либо читается либо не читается
... или в зависимости от закидонов привода читается криво или в хучшем случае особо глючный драйв клинит.
где можно найти сайт со сравнениями неро и алкохол
если сравнивать содержимое, можт для проверки rsync заюзать?