Главная страница
Форматы файлов мультимедиа и их хранение
Подготовка и хранение файлов фольклорно-этнографического материала на внешних носителях1

По состоянию на 2015 г. вэб-публикация недоступна. Копия сохранена по этой ссылке.

      На первый взгляд, вопросы хранения казалось бы ни у кого не вызывают сложностей. В любой архивной, да и во многих других организациях приобретают компакт-диски, или диски DVD+R и посредством программ записи aBurner, Small CD-Writer (или их платного аналога Nero Burning Rom) производят сохранение необходимых файлов жесткого диска. При наличии финансовых возможностей, создают копии. Если в организации присутствует стример-привод формата LTO (стоимость только устройства, от 3200 долларов США), то файлы копируют на ленту специального картриджа (1 шт - 65 долларов США, в пачке 10-20 картриджей по 800 Гб).
      Это стандартная операция, но при наличии ненадежных носителей требуется страховка, речь о которой пойдет ниже. Читатель может спросить, зачем предпринимать что-то еще, если архив уже имеет одну или несколько копий? Предположим, в архиве расположены два диска CD-R, на которых записаны звуковые файлы *.wav. Поскольку диски идентичны, то при повреждении какого-то одного из них, оригинальная копия легко восстанавливается со второго диска CD-R. Но при этом всегда присутствует вопрос - что если оба диска получат повреждения? Что ж, тогда возьмем ту часть звукового файла, которая сохранилась в копии и произведем замещение (потребуется написать несложную программу). Если файлы получили повреждение в одинаковых местах, или пострадали таким образом, что утрачен один и тот же участок как в исходном файле, так и в его копии, то в этом случае файл уже не восстановить. Но интересно другое, насколько мы убеждены в том, что на диске хранится именно то, что ожидалось хранить? Давайте разберемся.

      Например, понадобилось сделать выборку отдельных записей архива (в свое время очень модно было оцифровывать звукозаписи и затем "складывать" их на Audio CD). Во время извлечения треков с диска Audio CD, аппаратура и программа непрерывно ведут контроль.


      В конечном счете программа сообщает, что в процессе извлечения CD/DVD-привод об ошибках "не сообщил". Исправен ли привод? Насколько мы можем доверять им обоим, ведь оригинальный wav-файл был удален много лет назад?


      Говорить о качественном (подлинном) файле мы можем сразу же после его создания. Оцифровали компакт-кассету и созданный при этом *.wav файл потенциально не содержит ошибок (если файловая система, жесткий диск и модули оперативной памяти исправны). При записи этого файла на CD-R или DVD+R, исправный контроллер устройства произведет множество проверок, прежде чем сообщит об ошибке. Обычно мы перезагружаем операционную систему, например, Microsoft Windows, чтобы освободить оперативную память от системных переменных и после перезагрузки пробуем скопировать файл с диска CD-R/DVD+R обратно "в компьютер" (на жесткий диск), затем сравнить с первоисточником и убедившись в идентичности обоих, удалить источник с жесткого диска, либо, что еще лучше, переместить его в страховой фонд, например, на переносной жесткий диск.
      Как уже говорилось, все замечательно, когда контроллеры устройств "следят" за ошибками незаметно и точно исправляя данные прочитанные с дефектных участков носителей. Очень неприятной может оказаться ситуация, когда контроллер в силу разных причин не сообщает об ошибках. Файл успешно скопируется, но содержимое не будет соответствовать первоисточнику. Об этом можно узнать, лишь открыв звуковой файл *.wav в аудиоредакторе (если речь идет о данных фонограммархива). Тем не менее, даже в этом случае редко удается заметить мельчайшие отклонения в волновой форме аудиоданных, если только не прослушать звукозапись от начала и до конца.
      Очевидно, что выход один, необходимо каким-то образом запомнить все содержимое исходного файла. Ну, запомнить не удастся, а посчитать можно. Такая методика давно применяется в сети Интернет. Вместе со скачиваемым файлом, программисты публикуют файл контрольной суммы - CRC-файл. В процессе создания суммы, каждый байт файла суммируется один за другим. Поскольку значение байта лежит в пределах 0-255, то выполнение расчетов в общем-то элементарно. Файл контрольной суммы, как правило, текстовый и содержит значение суммы всех байт файла. Такую простую операцию выполняет, например, программа MD5 File Checker, правда алгоритм здесь немного сложней простого подсчета.
      Ну, хорошо, сумму посчитаем, а что делать, если она нарушена, не совпадает? Увы, в этом случае обращаются к страховому фонду и производят точно такую же проверку контрольной суммы. Если результаты успешны, то этот файл помещают вместо утраченного, производя запись на лазерный диск. В противном случае архивную единицу хранения следует считать частично, либо полностью утраченной. К счастью, есть программа, которая исправляет подобную ситуацию, если воспользоваться ей с самого начала.

      Приложение ICE ECC (http://www.ice-graphics.com, можно скачать отсюда) "позволяет защитить Ваши важные файлы от повреждения используя коды Рида-Соломона". Эта программа открывает исходный файл и путем расчетов создает на его основе своеобразную страховочную копию таким образом, что повреждение как оригинала, так и созданной "ecc"-копии, не влияет на состояние исходного документа2. Для того, чтобы восстановить на 99% поврежденный файл, копия должна содержать 100% информации для восстановления. После обработки, на один диск записываются оригиналы, а на другой (страховой диск) защитные ecc-файлы оригиналов. Таким образом, единица хранения основного фонда и страхового, это два разных (по содержимому) диска. Теперь документы в сохранности.

      Что произойдет, если какой-то из дисков частично, а то и полностью будет поврежден? Программа использует оба файла для восстановления данных, потребуется лишь с помощью специальных программ (SuperCopy, Non-Stop Copy) перенести файлы на жесткий диск компьютера. К сожалению, ненадежность нынешних носителей приведет к утрате единицы хранения в результате полного повреждения всех копий. Как уже упоминалось выше, лишь картриджи LTO могут хоть как-то обеспечить 95%-ную надежность при должном обращении. Но не будем о плохом, поскольку о ненадежности хранения на "лазерных" дисках можно судить спустя полгода-год после записи на них информации. Если так, то вернемся к установлению подлинности хранимого оригинала. Программой ICE ECC производится чтение ecc-файла. В случае, если ошибки (в том числе контрольных сумм) будут обнаружены, ICE ECC самостоятельно восстановит файл и сообщит об этом.

      Как осуществляется сеанс работы?3
1. Запускается приложение ICE ECC.
2. В файловом списке выбирается файл, который ожидается "защитить".
3. В левом верхнем углу окна нажимается кнопка-плюс.
4. В появившемся окне диалога указывается параметр Redundancy со значением 100%.
Приложение начнет формировать ecc-файл, который будет размещен рядом с оригиналом.

      Такое краткое перечисление пунктов довольно тяжело понять исследователю-гуманитарию, поэтому покажу на картинках.

      Формирую каталог, готовый к записи единицы хранения №1556 на диск. Поскольку магнитная лента была оцифрована с обеих сторон, то в каталоге присутствуют два файла, соответственно для стороны "А" и "B".


      В каталоге еще два файла (*.pk), эти файлы необходимы программе Adobe Audition для быстрой отрисовки волновой формы аудиоданных, но нам не нужны. Удаляем.


      Каталог подготовлен, запускается приложение ICE ECC. Оно включено в папку (каталог) Windsoft, поэтому для работы потребуется распаковать файл из самораспаковывающегося файла-архива c:\windsoft\ICEECC.exe (появится каталог ICEECC).


      Основное окно программы отдаленно напоминает внешний вид приложения "Проводник Windows". Отыскивается необходимый каталог с единицами хранения. Одним кликом левой кнопкой мыши устанавливаем курсор на первый файл, в данном случае "01556a.wav". Для создания файла "ecc" нажимаем кнопку со значком "плюс".


      Тут же появится окно с параметрами. Необходимо установить флажок внизу окна "Use this settings by default" и в параметре "Redundancy" установить значение 100%. Таким образом, в следующий раз уже не потребуется выставлять 100% (но всегда рекомендуется бросать взгляд на число). После манипуляций с настройками нажимается кнопка ОК, которая заставит программу рассчитать "ecc"-файл. Остальные параметры в работе не потребуются поэтому здесь не рассматриваются. Например, функция Split to volumes, позволяющая разделить достаточно объемный ecc-файл на несколько частей мной не используется. Считаю, что разделение защитного файла лучше осуществить в файловом менеджере Double Commander, но это уже тонкости работы, выходящие за рамки данной статьи. Необходимо стараться формировать единицы хранения небольшими (до 2, или до 4 Гигабайт) файлами.


      В зависимости от объема файла и мощности процессора, создание "ecc"-файла может затянуться на несколько десятков минут. Автор сообщает, что в новой версии скорость расчета будет увеличена в несколько раз, впрочем, версия уже будет платной.


      По окончании создания "защитного" файла, в нижней части окна отчета (окно лога) программа сообщит - "Все файлы верны. Быстрый ECC-тест завершен". В списке появится файл "01556a.ecc". Программа использует "цветной текст" для привлечения внимания, что я, например, высоко ценю. Зеленый, значит, паниковать не следует.


      Как и следовало ожидать, при избыточности в 100% "ecc"-файл имеет практически тот же объем, что и первоисточник. Проверим результат работы ICE ECC на прочность. "Ломать" файлы будем программой HxD (автор Mael Horz).


      Решил где-то в начале файла найти фрагмент и "затереть" его нулями. На практике такое может случиться при чтении информации с царапанного компакт-диска. Специальные программы, получив "ответ" от устройства DVD-ROM - "sector read error" (ошибка чтения сектора) заполняют полученную информацию нулями, чтобы сохранить остальные параметры файла, например, его объем. Традиционное копирование такого диска посредством Проводника Windows невозможно. После сообщения об ошибке, часть скопированной "в компьютер" информации будет удалена, даже если успевшая скопироваться часть, содержит важные для нас данные (предположим текст метаданных, т.е. описей).
      Программы-утилиты, такие как SuperCopy и Non-Stop Copy, доступные в каталоге Windsoft (к сожалению, SuperCopy не поддерживается и вэб-сайт закрыт, см. также GNU Drive Reader и File Salvage) позволяют скопировать файл полностью независимо от того, есть царапины на компакт-диске или нет (разумеется, сильные повреждения компакт диска не рассматриваются).


      Итак, выделяю блок с позиции #8888888 объемом #990000 и уничтожаю (#990000 = 10027008 байт, или 10 мегабайт). Использование программы HxD позволяет сохранить всю оставшуюся внутреннюю структуру файла, что чрезвычайно важно для точности эксперимента.


      Операция производится как с исходным файлом "01556a.wav", так и его резервной копией "01556a.ecc". В обоих файлах удаляется практически одна и та же часть файла, что в случае с основным и страховочным фондом архива констатирует факт полной утраты небольшого фрагмента единицы хранения. Прежде всего "спрячем" резервные копии, созданные приложением HxD в каталог, допустим C\:Temp Если этого не сделать, то программа ICEECC, "увидев" оригиналы сразу же примется с ними работать.


      Теперь откроем приложение ICEECC. Чтобы показать, что программу можно запускать откуда угодно, на скриншоте легко обнаружить, что запуск производится из другого каталога с помощью Проводника Windows (но я стараюсь программы "собирать" в одно место, например, в папку Windsoft).


      Отыскиваем наш каталог, устанавливая курсор на "ecc"-файл. Кнопкой "Verify" даем команду "проверить".


      Следующим шагом программа спросит "укажите каталог с исходным файлом" (Select directory with data files). Здесь оба файла расположены вместе, поэтому достаточно нажать [Ok].


      В последнем диалоге приложение попросит указать каталог, в котором она начнет "собирать" новый файл в случае обнаружения повреждений (Select destination directory for recovery files). Опасаясь возможных проблем, я интуитивно не пробовал задавать тот же самый каталог, поэтому "вышел на уровень вверх", то есть указал предыдущий каталог, в котором заведомо нет никаких файлов.


      В процессе работы, производя анализ, желтым цветом программа сигнализирует о том, что файл поврежден, указывая номер блока.


      Но нанесенный файлу "ущерб" для программы оказался несущественным. Total bad blocks - 27. Some files are damaged. Recover is possible. Здесь говорится о том, что файл пострадал на 2,6%, но восстановление возможно и будет немедленно осуществлено. В указанном "каталоге для восстановления" создается файл, после чего будет выведен отчет "All files succesfully recovered. Verify finished", который сообщает, что файлы (или файл) успешно восстановлены и даже повторно проверены на целостность. Немножко отклонюсь от темы и сообщу, что автор не планирует осуществлять перевод программы на русский язык, аргументируя простотой текста в диалогах.


      Не может быть! Давайте сверим с первоисточником побайтно.


      Все верно, совпадают.
      А если "подсунуть" поврежденный?


      В самом деле, вместо данных одни нули.

     Итак, файлы надежно защищены, пришло время записать их на компакт-диск (или диск DVD+R). Можно создать два каталога. Один для оригинала, например "01556", а другой для страховки "01556-ecc". Впрочем, названия могут быть произвольными, в соответствии с принятым именованием в архиве. Важно в дальнейшем не запутаться что к чему, поэтому я оставил исходное имя добавив лишь "-ecc", в качестве отличия. Каталоги записываются и в архиве теперь два диска, один из них оригинальный, содержит данные которые используют при мониторинге архивных единиц хранения (а также при создании резервных и страховочных фондов) и "ecc"-диск, постоянно его сопровождающий. Таким образом, автоматически и с пользой решается вопрос создания страхового фонда.


      Не рекомендуется хранить оригинал и его "ecc-страховку" на одном диске. При случайных повреждениях, множество царапин не позволят контроллеру DVD-привода открыть содержимое диска и единица хранения будет утрачена. Из двух дисков есть надежда, что какой-то "выживет". ICEECC позволяет восстановить оригинал даже из своего "ecc"-файла, поэтому оба диска по сути содержат одно и то же. Однако, хочу напомнить, что это справедливо для файлов, созданных с параметром Redundancy не менее 100%.
      Программа ICEECC может создавать "ecc"-файлы даже на целые каталоги и группы защищаемых каталогов, но на мой взгляд, "персональный" подход к каждому файлу более удобен. Он удобен хотя бы потому, что для переноса документов на флешку достаточно сбросить оригинал и его "ecc"-страховку, вместо копирования несоизмеримо огромного "ecc"-файла диска. Можно на флешку и не копировать "ecc"-файл диска, но при "транспортировке" документов архива все же присутствует риск.
      Между тем, создание "ecc"-файла для каталога фотографий вполне приемлемо. Но здесь речь плавно переметнулась в "пользовательский мир", который в статье не затрагивается. Это может послужить рекомендацией для хранения каких-либо файлов пользователя вообще, а не конкретно архивных.


      Небольшое добавление к тексту от 2015 г. Была опробована программа MultiPar, которая также создает защитные файлы и тоже является бесплатной. Вообще, программа Par известна в определенном кругу очень давно. MultiPar работает немного быстрей ICEECC (задействован и видео процессор GPU), последнее обновление от 15.10.2015 г. (ICEECC - 2009 год). Программу еще не "обкатал", поэтому остаюсь на ICEECC.


      Создал каталог и разместил там звуковой файл. Программе указал этот каталог и она сразу же открыла его показав содержимое. Можно добавлять и по одному файлу, кликнуть правой кнопкой мыши по белому полю вверху окна и выбрать "Добавить файл" (если в списке будет несколько файлов, то для них создается общий защитный файл, что не рекомендуется). В нижней части окна выставил бегунок прокрутки "Избыточность" вправо - 100%. Чуть ниже "Медиа тип:" выбрал "4.7Gb DVD". Еще правее "Кол-во файлов восстановления:" - 1 (необходимо следить, чтобы программа не изменила число). Поскольку отрицательно отношусь к разделению файлов какой-либо программой кроме файловых менеджеров, выберу "50GB Blu-ray" (опция "Медиа тип"). Других параметров не менял.


      Кнопка "Создать" запускает процесс. После создания par2-файла, весь каталог сохранил на другой диск и при помощи приложения HxD немножко повредил сразу оба файла (процентов на 8). При запуске и указании файла, программа в момент определила повреждение. Справа внизу действующая кнопка "Восстановить", значит вернуть оригинал все-таки можно.


      После нажатия на кнопку программа восстановила файл и присвоила ему изначальное имя, а мой поврежденный файл переименовала в "0560a.wav.1". Файловым менеджером создал файл контрольной суммы (SHA) и сверился со "спрятанным" оригиналом - ошибок нет.


      Познакомившись с программой ближе поставил эксперимент. Повредил сначала исходный файл (музыка в MP3).


      В правой части окна программы WinMerge оригинальный MP3 (отмечен желтыми полосками в левой части, Location Pane), немного левее - испорченная копия (серые полоски). WinMerge таким образом схематично (вертикально) отображает сразу весь файл (в данном примере сразу два файла). Программа не отображает серую часть рисунка, но там нули. Всего нанесено пять повреждений, свыше 40% файла было утрачено (см. желтые, либо серые полоски).



      В программе BCompare внизу слева эти нули видны.

      Затем повредил PAR2-файл - страховая копия MP3-файла. Три повреждения - более 30% содержимиго страхового файла уничтожено.


      Тем не менее, программа MultiPar успешно восстановила файл. При 100% повреждении содержимого оригинального файла программа сообщает о недостатке блоков для восстановления (если выбран параметр Избыточность/Redundancy 100% и менее). Степень избыточности можно увеличить в настройках, тогда диапазон бегунка прокрутки увеличится. Достаточно поставить 150%, а для файла выбрать 101%. MultiPar без проблем интегрируется в операционную систему (Send to...), работать с ним легко. К сожалению, как и ICEECC, MultiPar не восстанавливает исходную дату оригинального файла.

      Надеюсь, изложенная информация поможет вам избежать множества неприятностей, возникающих по вине аппаратуры и операционных систем.
Успехов!


1 Доклад прочитан на Международной научной конференции "Раскрывая культурное наследие: новые задачи для библиотек, архивов и музеев" г. Санкт-Петербург 2013 г. (Российская национальная библиотека и Голландский институт)
2 На 2015 год близкий по профилю действующий проект MultiPar. В 2013 году альтернативной была программа Recovery Star. Ранее - DataShield (последняя версия выпущена в 2000 году).
3 Подробнее о создании ECC файлов пишет Плотников С. А. "Защита CD/DVD дисков от порчи данных с помощью программы ICE ECC" (Автоматизированные архивные технологии)

(C) Бовин В.Б.
Внесение изменений: 01.02.2012, 27.03.2012, 09.07.2012, 17.12.2012, 13.01.2013, 01.11.2015