У меня есть физический сожженный компакт-диск и оригинальный образ ISO. Для содержимого компакт-диска не предоставлены контрольные файлы контрольных сумм. Как проверить, что настоящий CD является правильным (соответствует исходному образу) и полностью читаемым?
10
md5sum
себя и сравнить, если вы не хотите загружать CD / DVD.Ответы:
Сначала вы копируете свой CD во временный файл:
Затем проверьте , если
copy.iso
иorig.iso
имеют одинаковый размер, например , с помощью :Если размер идентичен, это легко:
Но я заметил, что в некоторых случаях размер может немного отличаться, потому что в копии или исходном изображении есть конечные нули. Например, если
copy.iso
меньше чемorig.iso
:Конечно, вы также должны проверить, что завершающие байты - это только нули:
Первая строка, за исключением смещения, должна содержать только нули. Вторая строка должна быть звездочкой. Звездочка должна избегать показа последовательных идентичных линий.
источник
head -c $(stat -c %s /path/to/master.iso) /dev/sr0 | sha1sum
чтобы избежать необходимости делать образ сгоревшего компакт-диска.Если файл ISO тот же, что и для записи компакт-диска, то вот мои два фаворита:
Сравнивает записанное изображение с файлом изображения. Если вы чувствуете себя немного более мазохистски, вы можете попробовать что-то вроде этого:
и сравнить подписи. Это более полезно, если у вас уже есть сумма SHA1. Обе команды будут читать носитель до конца.
Если вы хотите сделать это так, как предлагает @ Marki555, вам нужно сначала смонтировать как оптический привод, так и образ. Вот полный сценарий: (вы можете, конечно, обойтись без,
sudo
если вы root - плохая идея, в общем)источник
cmp [-l]
лучше подходит для бинарных файлов. Дифф лучше всего работает с текстом.Если у вас все еще есть ISO, вы можете сравнить их побайтно, используя
cmp
. Это достаточно простая команда, которая завершается при первом обнаруженном разнице, поэтому она значительно быстрее, чем создание контрольной суммы, если на самом деле в самом начале обнаружена ошибка.Возможные результаты в случае успеха:
&& echo OK
команду, если нехватка вывода смущает вас.cmp: EOF on cdrom.iso
: он идентичен, но в cdrom больше байтов, чем в вашем iso-файле. Обычно это происходит из-за заполнения нулями в конце компакт-диска. Поскольку на практике это не имеет значения, это все же успех.Возможные результаты при неудаче:
cmp: EOF on /dev/cdrom
: по какой-то причине данные на вашем CDROM неполные. Может быть, ваш ISO был слишком большим, чтобы вместить настоящий CD./dev/cdrom cdrom.iso differ: byte 18296321, line 71780
: есть некоторая неожиданная разница между вашим CDROM и вашим ISO-образом.источник
Вы можете проверить, что CD полностью читается с помощью
dd
(напримерdd if=/dev/cdrom of=/dev/null
). Но вы не можете сравнить его непосредственно с ISO-изображением. Каждое программное обеспечение будет создавать немного разные ISO-файлы (возможно, несколько разных заголовков или отступов), хотя все эти разные ISO-образы будут обеспечивать одинаковое содержимое CD (структура каталогов, атрибуты файлов и содержимое файлов).Таким образом, вы можете только смонтировать компакт-диск, смонтировать ISO-образ и сравнить его на уровне файловой системы, используя какой-либо инструмент сравнения каталогов (извините, я еще не использовал ни одного в linux).
источник
diff -r
будет сравнивать содержимое каталога рекурсивно.Brasero может сделать это: Инструменты -> Проверить целостность ...
источник