Журнал LinuxFormat - перейти на главную

LXF116:DVDisaster

Материал из Linuxformat
Перейти к: навигация, поиск

Содержание

DVDisaster

Шашанк Шарма нашел волшебный способ сохранить ваши DVD с резервными копиями в безопасности, даже после того, как дети использовали их в качестве летающих тарелочек…

Год за годом стопка моих DVD с резервными копиями растет и растет. Увы, у оптических дисков есть слабость: склонность к царапинам, делающим их нечитаемыми. Вдобавок – хотя лично я еще не накопил эмпирических сведений для такого заявления – ученые, исследовавшие законы Мэрфи, верят, что диски с важными данными неизбежно портятся с частотой, большей, чем у прочих дисков, при всех видимых невооруженным глазом изъянах на отражающей поверхности этих прочих.



Технология работы оптических дисков знакома многим из нас, но вот вам быстрый экскурс в ее суть. Данные хранятся в виде серий небольших выемок, называемых ямками [pit], в спиральных треках. Непрерывные спиральные треки расходятся от первого внутреннего трека к последнему внешнему и покрывают всю поверхность. Пространство между ямками называется равниной, а неравенство высоты ямок и равнин выражается в интенсивности отраженного от диска луча. Измеряя изменение этой интенсивности, оптические приводы считывают с дисков данные.

Различные факторы, влияя на слои оптического диска, делают его нечитаемым. Обычно предполагается, что компакт-диск состоит из одного слоя, содержащего данные, но на самом деле диск – это слоеный пирог. Его слои (не по порядку) таковы: слой этикетки, слой данных, отражающий слой, слой лака и один-два слоя подложки из поликарбоната, в зависимости от типа носителя.

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

Ошибки секторов

DVDisaster поможет создать файл с кодом коррекции ошибок (Error Correction Code, ECC) для каждого вашего диска, что позволит восстановить данные с наиболее потертых экземпляров. Файл ECC содержит информацию для пересчета содержимого пропавших секторов. При стандартных настройках один блок корректирующего кода содержит 223 сектора, и на один ECC-блок можно восстановить максимум 32 плохих блока. Как следствие, достаточно 33 плохих секторов на диске, чтобы данные стали невосстановимы. Но чтобы такое произошло, 33 плохих сектора должны оказаться в одном ECC-блоке, а это маловероятно.



DVDisaster доступен в репозиториях приложений большинства дистрибутивов, так что вы можете использовать для его установки соответствующий инструмент управления пакетами. С DVDisaster можно работать в командной строке или в его графическом интерфейсе, создавая файл коррекции и восстанавливая данные с поврежденных дисков. Первый шаг – создание файла коррекции для вашего носителя. С этой целью DVDisaster требуется ISO-образ данных: сам он не умеет создавать ISO-образы из файлов и каталогов, намеченных для прожига, так что сначала вам придется воспользоваться другим инструментом, например, GnomeBaker (см. врезку «Создаем ISO-образы»).

Экие они, ECC…

Обзаведясь ISO-образом, запустите DVDisaster из меню Приложения > Системные [Applications > System Tools], если вы используете Gnome, или из меню Система [System] в случае KDE. Выберите ISO-образ, введите подходящее имя ECC-файла, а затем нажмите кнопку Создать [Create]. DVDisaster сначала прочтет ISO-образ, а затем создаст ECC-файл. Размер файла коррекции ошибок составляет примерно 15 % от размера ISO-файла.

На вкладке Основные [General] вы найдете базовые опции: например, должен ли DVDisaster удалить ISO-образ после создания ECC-файла (здесь можно оставить стандартные настройки). На вкладке Коррекция ошибок [Error correction], как показано ниже, выбирается используемый метод коррекции ошибок – RS01' или RS02. Другие опции на этой вкладке – Избыточность для новых файлов коррекции ошибок [Redundancy For New Error Correction Files] и Использование памяти [Memory Utilisation]. По умолчанию для кэша используется 32 МБ системной памяти. Предустановки Нормально [Normal] и Высоко [High] обеспечивают избыточность 14,3 % и 33,5 % соответственно. Как правило, избыточность x % создает файл коррекции ошибок размера x % от размера соответствующего файла-образа. Щелкнув на Другое [Other], можно ползунком выбрать значения от 3,2 % до 64,5 %, а кроме того, указать максимальный размер файла коррекции ошибок в МБ. В этом случае DVDisaster автоматически подберет нужные настройки избыточности и обеспечит, чтобы предел не превышался. Можно также увидеть количество корней, соответствующих выбранному уровню избыточности. При избыточности 14,3 % число корней равно 32, а при 33,5 % – 64. Число корней означает число ошибок в блоках данных, при котором возможно восстановление. Каждый блок данных состоит из нескольких секторов ISO-образа.

Метод кода коррекции ошибок – это добавление к передаваемому сообщению некоторых избыточных данных, таких, чтобы при наличии ошибок получатель мог исправить их самостоятельно. Для создания файла коррекции ошибок DVDisaster использует алгоритм кодирования Рида–Соломона [Reed–Solomon]. Методы RS01 и RS02 влияют на способ хранения ECC-файла. Кто желает хранить файл коррекции ошибок отдельно, используйте RS01. В этом случае, если вы записываете ECC-файл на такой же оптический диск, надо создать файл коррекции ошибок и для него. По методу RS02, ISO-образ дополняется файлом коррекции ошибок, и последний оказывается на одном диске с данными.

Поскольку метод RS02 добавляет информацию о коррекции ошибок в сам образ, при прожиге диска следует учитывать суммарный размер данных и ECC. Если при использовании метода RS01 доступен весь объем диска (поскольку файл коррекции ошибок хранится в другом месте), то в случае RS02 доступное пространство носителя уменьшается на размер информации для коррекции ошибок.

Кроме того, для RS01 можно указать желаемый процент избыточности, а в RS02 избыточность зависит от доступного места на носителе, то есть объем диска минус объем данных. И еще одно важное отличие: для RS01 достаточно 15 % избыточности, а RS02 требует 20–30 %.

Восстановление данных


Для восстановления данных с поврежденного диска, нажмите кнопку Читать [Read] и предоставьте DVDisaster создать ISO-образ диска. Далее укажите путь к соответствующему ECC-файлу для этого диска и нажмите кнопку проверки. DVDisaster сравнит ISO-образ с ECC-файлом и сообщит вам, есть ли ошибки чтения. Если DVDisaster показал, что ошибок нет (несмотря на царапины и другие видимые дефекты), то диск в порядке, а данные в безопасности. А вот если ошибки найдутся, нажмите кнопку Исправить [Fix], и DVDisaster восстановит ISO-образ до его первоначального состояния.

Красные столбики на экранном снимке обозначают плохие области. По завершении, можно вновь сравнить ISO-образ с ECC-файлом, нажав кнопку Проверка [Verify]. В этот раз ошибок быть не должно. Теперь прожгите ISO-образ на новый диск, и дело в шляпе.

В зависимости от качества носителя и условий хранения, вы, наверное, захотите проверять записанные диски вновь и вновь. Может быть, каждые две недели, или раз в полгода. Для проверки носителя вставьте диск в привод, запустите DVDisaster, введите путь к соответствующему ECC-файлу и нажмите кнопку Сканировать [Scan]. Нет сомнений, что под впечатлением от содеянного, вы захотите создать файл коррекции ошибок для всех ваших дисков с резервными копиями. Нажатие на кнопку Читать [Read], когда диск находится в приводе, «снимет» его ISO-образ. Теперь введите имя ECC-файла и нажмите кнопку Создать – для только что созданного образа сгенерируется ECC-файл.

О вы, фанаты терминала

Живо представляю, как вы ухмыляетесь и бормочете под нос: да-да, это я! Тем, кто предпочитает работать в командной строке, DVDisaster позволяет всячески манипулировать носителем, будь это при создании ECC-файла, проверке или исправлении образа.

Сейчас мы создадим ISO-образ диска, а затем ECC-файл для него. Вставьте диск в привод и подайте команду:

 dvdisaster -r -d /dev/sd0 -i backup_4.iso

Вы получите следующий вывод [если при установке был выбран русский язык интерфейса, то результат будет на русском, – прим. пер.]:


 dvdisaster-0.70 Copyright 2004-2007 Carsten Gnoerlich.
 This software comes with ABSOLUTELY NO WARRANTY. This
is free software and you are welcome to redistribute it under the
conditions of the GNU GENERAL PUBLIC LICENSE.
 See the file “COPYING” for further information.
 Device: /dev/sd0, TSSTcorpCD/DVDW SH-W162Z TS01
 Medium “My_disc”: Data CD mode 1, 348269 sectors, created
01-01-2009 .
 Creating new backup_2.iso image.
 Waiting 5 seconds for drive to spin up...
 Sector 348267: Medium Error; L-EC uncorrectable error.
 *
 * dvdisaster - can not continue:
 *
 Sector 348268: Hardware Error; Timeout on logical unit.
 Can not recover from above error.

Опция -r в приведенной выше команде велит DVDisaster прочитать диск в приводе /dev/sd0 и создать его ISO-образ (опция -i). Хотя ошибки есть, DVDisaster все-таки сумел справиться с задачей. Проблема достаточно распространенная: сравните общее число секторов (348269) и номер «дефектного» сектора (348268). Такое явление известно как «пропажа двух секторов в конце диска». Она возникает при записи носителя в режиме Трек за раз (Track At Once, TAO). Запущенный в графическом режиме, DVDisaster спросит, следует ли удалить два последних сектора из образа. В режиме командной строки считается, что диск записан в режиме TAO, и операция выполняется по умолчанию. Вот почему, несмотря на ошибки, DVDisaster «снял» образ.

Для создания ECC-файла из образа выполните команду:

 dvdisaster -c -i backup_last_week.iso -e backup_last_week. ecc

Вы получите следующий вывод:

 This software comes with ABSOLUTELY NO WARRANTY. This
is free software and you are welcome to redistribute it under the
conditions of the GNU GENERAL PUBLIC LICENSE.
See the file “COPYING” for further information.
Opening backup_last_week.iso: 57376 medium sectors.
Encoding with Method RS01: 32 roots, 14.3 % redundancy.
Ecc generation: 100.0 %
Error correction file “backup_last_week.ecc” created.
Make sure to keep this file on a reliable medium.

Здесь ключ -c говорит DVDisaster, что вы хотите создать файл коррекции ошибок, опция -i используется для указания файла образа, а опция -e описывает имя файла коррекции ошибок.

Если вы хотите проверить один из ваших дисков на наличие ошибок, задайте опцию -s – носитель отсканируется и будет сверен с ECC-файлом, указанным в опции -e. По умолчанию DVDisaster читает с /dev/cdrom, так что укажите свой привод, используя опцию -d, вот так:

dvdisaster -s -d /dev/sr0 -e error_correction_file.ecc

DVDisaster сообщит обо всех встретившихся при сканировании диска ошибках. Файл коррекции ошибок, созданный при помощи опции -e, как описано в этом разделе, использует метод хранения RS01. Для указания избыточности можно использовать опцию -n. По умолчанию, DVDisaster создает файл коррекции ошибок с избыточностью 14,3 %. Для создания файла коррекции ошибок по методу RS02 используйте опцию -m, чтобы указать желаемый метод:

 dvdisaster -c -mRS02 -i test_rs02.iso

Это даст нам следующий отклик:

 This software comes with ABSOLUTELY NO WARRANTY. This
is free software and you are welcome to redistribute it under the
conditions of the GNU GENERAL PUBLIC LICENSE.
 See the file “COPYING” for further information.
 Opening test_rs02.iso: 257376 medium sectors.
 Augmenting image with Method RS02:
 412 MB data, 94 MB ecc (51 roots; 25.0 % redundancy).
 Preparing image (checksums, adding space): 100 %
 Image has been augmented with error correction data.
 New image size is 506 MB (322637 sectors).

(Отметим, что между опцией -m и текстом RS02 пробела нет. Это специальная часть синтаксиса.)

Хотя это и маловероятно, но если вы как-то перепутали ECC файл и диск, можете воспользоваться опцией --test для проверки соответствия файла коррекции ошибок и образа. После отображения CRC-ошибок для каждого сектора, DVDisaster сообщит о несоответствии:

backup_1.ecc: created by dvdisaster-0.70 (pl4)
- method : RS01, 32 roots, 14.3 % redundancy.
- requires : dvdisaster-0.55 (good)
* medium sectors : 57376 (BAD)
- image md5sum : 23c0607b6df08e168a785f13df2438d1
* fingerprint match: MISMATCH - .iso and .ecc don’t belong
together!
- ecc blocks : 528384 (good)
- ecc md5sum : bf370100431280b5a894822393236574 (good)

При том числе дисков с резервными копиями, которые есть у большинства из нас, довольно трудно создать ECC-файл для каждого из них, а затем прожечь эти диски вновь. И все же мудрость данных действий нельзя отрицать. В отсутствие альтернатив, DVDisaster впечатлил нас чуткостью к природе оптических дисков. DVDisaster служит очевидной задаче: сделать так, чтобы природная хрупкость оптических дисков не была проблемой. LXF

Выше голову

К сожалению, DVDisaster не поддерживает мультисессионные диски. Поэтому если у вас есть такие диски, созданные несколько лет назад, и вы надеетесь перезаписать их после создания ECC-файла, то увы! Вы вставите мультисессионный диск и нажмете кнопку Чтение, а DVDisaster скажет, что он с ним не работает. Но это препятствие можно обойти. Воспользуйтесь инструментом AcetoneISO2 для создания ISO-образа диска. Создав образ, выполним старую процедуру – сгенерируем для него ECC-файл.

Персональные инструменты
купить
подписаться
Яндекс.Метрика