Как проверить DVD, CD, ISO на целостность
Написал: scrim в категорию Ubuntu, howto, консоль, утилитыЗадача: диск записан - нужно проверить правильность записанных данных.
Решение: для этого есть простые средства, типа dd и md5sum. Реализация в виде скриптов.
Для этого нам нужен md5sum и несколько утилит, входящих в любой уважающий себя дистрибутив.
Подсчёт контрольной суммы файла
Для того, чтобы просто подсчитать MD5-сумму уже имеющегося iso-образа, пишем в консольке
md5sum my.iso
Через некоторое время вы увидите что-то вроде этого:
e941bb0ecac20a2043c9f8e69fbab63a my.iso
А можно и так:
cat my.iso | md5sum
Увидите то же самое:
e941bb0ecac20a2043c9f8e69fbab63a
Для скачиваемых из Интернета iso-образов обязательно рядом с ним лежит либо файл MD5SUMS, или такой же по имени файл, только с расширением md5 - не забывайте их скачивать. Так можно будет всегда проверить, правильно ли вы скачали образ диска.
Кстати говоря, кроме метода MD5 встречается SHA1 - его особенно любят федоровцы. Синтаксис тот же, что и у md5sum, только утилита называется соответственно sha1sum.
Проверка правильности записи на CD и DVD диск
Есть несколько способов сделать это, и большинство из них основано на подсчёте контрольной md5-суммы исходного образа и записанного на диск. Их совпадение гарантирует правильность записи и то, что файлы на диске не повреждены.
Способ #1: утилита dd Эта утилита входит в состав любого дистрибутива и является чрезвычайно полезной во многих случаях - здесь мы тоже будем её использовать. Однако в случае с CD и DVD дисками есть свои тонкие моменты, которые необходимо учитывать, иначе вы получите неправильные результаты.
Для CD-дисков
Вставляем диск и пишем в консольке:
dd if=/dev/scd0 | md5sum
Если у вас другое устройство для чтения/записи дисков (не /dev/scd0) - измените команду соответственно.
После выполнения этой команды вы увидите:
$ dd if=/dev/scd0 bs=2048 | md5sum
1776750+0 records in
1776750+0 records out
3638784000 bytes (3.6 GB) copied, 308.448 s, 11.8 MB/s
ff4f6d85978347883ffff2242121cad3 -
Если у вас есть файл MD5SUMS или my.iso.md5 - проверьте, совпадают ли контрольные суммы. Если у вас такого файла нет, но есть образ диска - просто подсчитайте его контрольную сумму, как говорилось выше: md5sum my.iso
Для DVD-дисков
Здесь всё немного сложнее: дело в том, что при записи на DVD пишется так же и служебная информация, поэтому для проверки DVD-дисков утилитой dd нужно точно указывать размер и количество блоков. Для того, чтобы узнать, сколько значимых блоков (extents) имеется в iso-образе, выполняем команду (вводите именно так, как написано, меняя тольк имя образа):
echo $(( $(ls -l my.iso | awk ‘{ print $5 }’) / 2048 ))
Результатом будет число блоков - это число нам потребуется для команды dd:
177675
Теперь, зная, что размер блока равен 2048 байт и количество блоков на DVD-диске, даём команду:
dd if=/dev/cdrom bs=2048 count=177675 | md5sum
Результатом её выполнения будет вывод:
$ dd if=/dev/scd0 bs=2048 count=1776750 | md5sum
1776750+0 records in
1776750+0 records out
3638784000 bytes (3.6 GB) copied, 308.448 s, 11.8 MB/s
ff4f6d85978347883ffff2242121cad3 -
Как видно, что записанный на DVD образ и isoшник на жёстком диске совпадают, так что запись прошла успешно.
Подчёркиваю: для DVD-дисков обязательно нужно указать размер и количество считываемых блоков, иначе утилита dd может считать служебные данные, что исказит значение контрольной суммы и вы будете думать, что запороли болванку в то время как (возможно) данные записаны верно.
Прочитать остальное »

Записи (RSS)