1
April
2021
Проверка чтения DVD и CD дисков
16:39

Проверка чтения DVD и CD дисков

1 April 2021 16:39

Часто после записи данных на новый DVD-R диск хочется удостоверится, что файлы читаются. Также, старые исцарапанные CD-R диски могут вызывать подозрения в плане их чтения в приводе DVD-RW. Перед тем, как использовать такие диски, желательно выполнить проверку чтения, которая не займёт много времени.

Способ 1. Проверка чтения диска с помощью команды DD

Данный способ не очень хорош, т.к. не даёт представление о том, какой из файлов не читается. Зато самый быстрый,
и подсказывает результат - читается ли диск в целом, или нет.

dd if=/dev/dvdrw of=/dev/null

либо для внешнего привода DVD:

dd if=/dev/sr1 of=/dev/null

где dvdrw, sr1 - имена устройств для чтения/записи CD/DVD, которые можно узнать с помощью команды cd-drive из пакета libcdio-utils).

Пример результата выполнения:
dd if=/dev/dvdrw of=/dev/null
626688+0 records in
626688+0 records out
320864256 bytes (321 MB, 306 MiB) copied, 68,8281 s, 4,7 MB/s

Способ 2. Проверка чтения файлов на диске при помощи команд FIND и CP /dev/null

Хороший способ, хотя и довольно медленный, если файлов много. Команда

find /media/vladimir -type f -exec cp "{}" /dev/null \;

где vladimir - имя пользователя

Разбор (объяснение) команды:
Команда find ищет в каталоге /media/vladimir/ИМЯ_ДИСКА все файлы (-type f)
и на каждом из них выполняет (-exec) команду cp.

При этом, две фигурные скобки {} относятся к команде find,
для команды cp вместо скобок подставляется имя текущего обрабатываемого файла (см. man find):

The string `{}' is replaced by the current file name being processed everywhere it occurs in the arguments to the command

Для чего кавычки вокруг фигурных скобок?
Это символы сильного экранирования.

Для чего нужна точка с запятой в конце команды?
Это тоже объяснено в man find:

All following arguments to find are taken to be arguments to the command until an argument consisting of `;' is encountered.

То есть точка с запятой ограничивает собой список аргументов команды find.

Зачем используется обратный слеш (косая черта - "\") перед точкой с запятой ";" ?
Без косой черты выводится ошибка о пропущенном аргумента
-exec cp "{}" /dev/null ;
find: missing argument to-exec'`
то есть косая черта по моему мнению используется для одиночного экранирования аргумента ";" (конец аргументов).

Подробности про экранирование синтаксиса командного интерпретатора bash лучше узнать из курсов или учебников Linux. Так как это выходит за рамки данной статьи.

Данную команду следует выполнять, когда оптический диск в приводе DVD-ROM был опознан системой и произошло его монтирование в каталог /media (диск появился в Проводнике PCmanFM).

Результат выполнения команды на старом, поцарапанном CD диске:

find /media/vladimir -type f -exec cp "{}" /dev/null \;
cp: error reading '/media/vladimir/HBCD 15.2 RUS/HBCD/Boot/pmagic/pmodules/PMAGIC_2012_10_10.SQFS': Ошибка ввода/вывода

Способ 3. Вычисление контрольной суммы (хеша) с записанного диска (MD5SUM и SHA256SUM)

Если прожиг диска производилась с образа ISO, можно сравнить исходную контрольную сумму файла образа и контрольную сумму
после чтения диска.

Необходимо загрузить в DVD-RW привод записанный CD или DVD диск и выполнить команду

md5sum /dev/dvdrw

Скорость выполнения зависит от скорости привода и объёма данных

Например, результат для снятия контрольной суммы диска
4b6f499873f282c8dd95adaf071eec68 /dev/dvdrw

У исходного образа диска также снял сумму
md5sum xubuntu-20.04.2.0-desktop-amd64.iso
4b6f499873f282c8dd95adaf071eec68 xubuntu-20.04.2.0-desktop-amd64.iso

Сравнение показывает, что контрольные суммы совпадают, диск записан качественно и хорошо читается.

В последнее время контрольную сумму вычисляют по алгоритму SHA256
например, указанная на странице https://mirror.yandex.ru/ubuntu-cdimage/xubuntu/releases/20.04/release/
контрольная сумма по алгоритму SHA256 для указанного дистрибутива составляет (см. файл SHA256SUMS)
c59c3bb825294dbf76fd3a5dfa3fd5de9e854934b7c9aa6258105b6648979cd5 *xubuntu-20.04.2.0-desktop-amd64.iso

Можно сравнить файл образа с указанной суммой (что означает, что образ загружен полностью, корректный):

sha256sum xubuntu-20.04.2.0-desktop-amd64.iso

Результат проверки:
c59c3bb825294dbf76fd3a5dfa3fd5de9e854934b7c9aa6258105b6648979cd5 xubuntu-20.04.2.0-desktop-amd64.iso

Указанные контрольные суммы (хеш-суммы) совпадают. Значит ISO образ соответствует оригинальному, с веб сайта.


Источник (автор borisych):