Вы здесьcd-rr - cd-R eRRoR coRRectoR
      Опубликовано вс, 04/11/2012 - 16:31 пользователем Рыжий Тигра     
  
  Фильмам, программам и базам данных, безвременно погибшим из-за ошибок на компакт-дисках, посвящается. Предлагаю вниманию публики пакет программ для защиты информации на компакт-дисках (и не только): cd-rr (сокращение от cd-r error corrector). Способ защиты основан на старой доброй идее избыточности данных (redundancy; конкретно использованы коды Рида-Соломона aka RS-коды), и программ подобного рода - уже великое множество: тут и знаменитый RAR  с его recovery-record'ами и recovery-volume'ами, и славный среди фидошников parchive, и почтенная бабушка Альфа-Лоза... Но ни одна из них не годилась для защиты данных на дисках формата XCD, а именно это мне было позарез нужно в далёком 2003 году, так что пришлось написать свою примочку. А потом она обросла дополнительными возможностями типа защиты обычных ISO CD-R и даже флоппи-дисков, созрела и в 2005 году впервые вышла в свет - тогда ещё не опен-сорсная, а просто фриварная. В начале 2007-го, после выхода версии 1.29, я её забросил, хотя изредка извлекал архив с исходниками и задумывался - а что бы ещё такого доулучшить. :-) Подробное описание всего пакета - см. в следующем посте. Описание большое, поэтому выкладка может растянуться на несколько дней. Ещё один отдельный пост отвожу под выдержки из уже накопившихся обсуждений, вопросов, ответов, предложений и т.д. 02/11/2012 Последняя на данный момент версия пакета: cd-rr-1.30 - исходные тексты, программы под win32 и под Linux на x86. 
  | 
  
   Вход на сайтПоиск по блогам и форумамUser menuПоследние комментарии
      alex-from RE:Оплатил два раза, но абонемента нет 14 часов 
  babajga RE:Приключения белочки Рыжки 17 часов sem14 RE:Книжная серия "Жизнь в искусстве" издательство "Искусство"... 1 день Kiesza RE:На 78-м году жизни скончался советский и российский... 1 день Aliki RE:Подайте бедному копеечку на книжку с литреса... 2 дня Paul von Sokolovski RE:Бушков умер. 1 неделя lemma7 RE:Серия «Интеллектуальный детектив» изд-ва АСТ 1 неделя mig2009 RE:Багрепорт - 2 2 недели Isais RE:Издательство "Медуза" 2 недели babajga RE:Народные сказки - Сказки народов Сибири = Fairy-Tales of... 3 недели Саша из Киева RE:Кто сможет раздобыть и оцифровать нужные мне книги? 4 недели sibkron RE:Серия "Библиотека французской литературы" (Макбел) 4 недели Isais RE:Игорь Северянин - Том 2. Поэзоантракт 1 месяц sem14 RE:Современная корейская литература. Книжная серия... 1 месяц sem14 RE:Семейственность в литературе 1 месяц Isais RE:Детство, опаленное войной (Вторая мировая 1939-1945 и ВОВ) 1 месяц Саша из Киева RE:Подводное течение 1 месяц konst1 RE:Переименовать ник (имя учетки) 2 месяца Впечатления о книгах
Lena Stol про Искаженный мир
04 11 Прочитала обе книги, пропускала много, особенно во второй части, хороший сюжет, но уж очень автор растянул. Если из двух книг сделать одну, будет интереснее. 
udrees про Михеенков: Маргелов (Биографии и Мемуары)
04 11 В книге встречаются интересные упоминания, например про новобранцев с Западной Украины, «командиры были им не рады», они ненавидели оба режима, были коллаборантами, вообще удивительно, как они воевали в рядах Красной Армии, ……… Оценка: неплохо 
udrees про Вальтер: Реквием [СИ litres] (Боевая фантастика, Социальная фантастика, Приключения: прочее, Самиздат, сетевая литература)
04 11 Вот и завершилась история четверки отморозков, что портили воздух после начала Армагеддона. Таких отбитых персонажей еще надо поискать, но у автора есть еще похожие циклы произведений с таким же отребьем в роли главных героев. Книга ……… Оценка: неплохо 
udrees про Келли: Сатана. Биография (История, Религиоведение, Религия)
04 11 Просто какая-то религиозная муть, что я могу сказать про эту книгу. Автор конечно проделал большую работу, достойную кандидатской или даже докторской диссертации, изучил множество источников, анализировал, сопоставлял, делал ……… Оценка: плохо 
udrees про Мантикор: Город, которого нет 2 [СИ] (Фэнтези, Самиздат, сетевая литература)
04 11 Книга все больше начинает напоминать серию книг автора – Покоривший Стену. По крайней мере начинаешь встречать знакомую терминологию – энергет, изнанка, пустотная магия, мертвая магия, цветы эдельвейс, артефакты некоторые. ……… Оценка: отлично! 
udrees про Мантикор: Город, которого нет (СИ) (Фэнтези, Самиздат, сетевая литература)
04 11 Первая книга серия захватывает с первых страниц, потому что без предисловий герой, как и в серии книг из Покоривший Стену, просыпается уже в новом мире, в новой Игре. Так что амнезия на старте и изучение непонятного мира, ……… Оценка: отлично! 
Belomor.canal про Маттиоли: Темные финансы. Неликвидность и авторитаризм на окраинах Европы [Dark Finance: Illiquidity and Authoritarianism at the Margins of Europe ru] (История, Экономика)
03 11 Впечатляет, что смогли провернуть шустрые македонцы, вместе с евродепутатами! "Скопье 2014" - евро откаты и как это делается в развитой демократии. Оценка: отлично! 
Sello про Эшноз: Высокие блондинки [Les grandes blondes ru] (Иронический детектив)
03 11 Разве только что за неимением под рукой другой книги, более приемлемой для чтения, сойдет. Оценка: неплохо 
mysevra про Мессинг: Магия моего мозга. Откровения «личного телепата Сталина» [litres] (Биографии и Мемуары, Эзотерика)
02 11 Я, как тот кот, «чё-то сомневаюсь» в подлинности дневников, но прочитала в целом с интересом. Оценка: хорошо 
mysevra про Ливергант: Пэлем Гренвилл Вудхаус. О пользе оптимизма (Биографии и Мемуары, Литературоведение)
02 11 Удивительный человек. Эрудированный, работоспособный. Британская дисциплина и незаурядный талант в одном флаконе. Тем паче поражает дивное сочетание умения зарабатывать деньги и странной непрактичности, словно оторванности от реального мира. Оценка: отлично! 
mysevra про Перцефф: Гиперболоид смерти. Психотронное оружие в действии (Публицистика)
02 11 Ох уж этот «тонкий» привкус пропаганды и двойные стандарты. Редкостное лицемерие, небрежно упакованное в обёртку заботы о ближнем. Оценка: плохо 
Олег Макаров. про Олигарх
02 11 «...питерский мужик, но очень большой любитель истории, особенно родного Севастополя...» так я не понял, мужик-то питерский или севастопольский?  | 
  
  
Комментарии
cd-rr - cd-R eRRoR coRRectoR: документация
Этот пост будет неоднократно правиться - тут будет документация на весь пакет cd-rr и её будет много. Поэтому прошу пост ответами не подпирать!
Глава 1: Начальные сведения.
Что и как оно делает
Работают обе программы до смешного просто. :-)
Как его запускать
Обе программы - rrenc и rrdec - построены на стандартном юниксовом консольном интерфейсе командной строки. Кто работал с DOS'ом или UNIX'ом - знают. Кто не в курсе - спрашивайте (у меня или у тех, кто знает ;-) ). Кто знает ссылку на толковое описание на русском - делитесь.
Итак, программы отзываются на стандартный ключ -h (или --help) и выдают список параметров.
Формат командной строки кодера:
rrenc <обязательные-ключи> [ необязательные-ключи ] <размер> <RR-список> [ RR-данные ]
Формат командной строки декодера:
rrdec <обязательные-ключи> [ необязательные-ключи ]
Глава 2: Первое знакомство.
Как им управлять
Рассмотрим основные ключи, общие для обеих программ:
- -h, --help
- ну, это понятно. Правда, подсказка будет выведена на корявом английском (так уж оно исторически сложилось...), но зато она всегда самая свежая. :-)
  
 
- -@ <файл>.rrt, --input-list=<файл>.rrt
- список обрабатываемых файлов (.rrt-файл). Параметр обязательный, значения по умолчанию не имеет. Путь к списковому файлу никак не соотносится ни с --source-dir, ни с --target-dir. Описание форматов списковых файлов будет в следующей главе.
 
 
- -s <путь>, --source-dir=<путь>
- базовый путь к дереву подкаталогов, в которых лежат защищаемые файлы. Относительно него строятся пути к файлам, перечисленным во входных списках; он же, как правило, отображается на корневой каталог компакт-диска при его создании. Пути к файлам и каталогам, задаваемые в других параметрах, никак с этим путём не соотносятся. Значение по умолчанию: текущий каталог.
 
 
- -t <путь>, --target-dir=<путь>
- для rrenc: базовый путь к формируемым файлам - он нужен, к примеру, чтобы рассчитать защитные данные для файлов на компакте (или на сетевом диске, доступном только на чтение). Значение по умолчанию: копия --source-dir (текущий каталог, если --source-dir тоже не задан);
 - для rrdec: базовый путь к дереву подкаталогов, куда будут восстанавливаться файлы. Значения по умолчанию не имеет. Если не задан - восстановление не производится, а выполняется только проверка на пригодность к восстановлению.
 
 
- -o <база>, --output-base=<база>
- базовый путь (вернее, имя с путём, но без расширения) для файлов программы m2cdm. Значения по умолчанию не имеет. Если задан - во время защиты или восстановления создаётся файл параметров для m2cdm с именем <база>.um2. Если потом запустить m2cdm с параметром -paramfile <база>.um2 - будет сгенерирован образ диска (файлы <база>.cue, <база>.bin, <база>.toc), из которого можно нарезать болванку большинством программ для записи компакт-дисков или смонтировать образ большинством программ-эмуляторов.
 
 
- -e <расширение>, --form2-ext=<расширение>
- расширение имени, которое будет присвоено XCD-файлам. Значение по умолчанию: "xcd". (Вообще-то всюду, в том числе и в m2cdm, принято расширение по умолчанию "dat", но это расширение имеют и файлы реестра в Windows 95/98, и базы данных Clarion'а, и ещё какие-то системные данные... В конце концов, "xcd" - вполне достойное расширение для файлов на компакт-дисках в формате XCD. :-) )
 
 
- -l <метка>, --volume-label=<метка>
- метка диска. На процесс защиты эта запись не влияет. В файл параметров для m2cdm (см. ключ --output-base) добавляется команда о присвоении образу метки.
 
 
- -w, --overwrite
- разрешает перезаписывать выходные файлы. В противном случае программы прекращают работу, если хотя бы один из выходных файлов уже существует - чтобы случайно не затереть (а вдруг там что-то ценное? :-) ).
 
 
- -c, --no-check-hdr
- разрешает проверять защищаемые файлы на XCD-формат только по расширению имени(это существенно уменьшает время начального типирования файлов). Иначе проверяется начало каждого защищаемого файла на предмет наличия в нём заголовка, типичного для .xcd-файла, - это долго, но, возможно, надёжнее.
 
 
- -v, --verbose
- задаёт повышенный уровень "болтливости" программы. Полезно для выяснения причин, почему программа работает не так, как надо. Болтовня идёт на английском языке, поэтому в нормальных условиях раздражает. :-)
  
 
- -q, --quiet
- наоборот, "молчаливый" режим - полезен, если списковый файл проверен, батники отлажены и можно давать записанный диск чужим людям. :-) Выводятся только сообщения о серьёзных ошибках (типа переполнения диска или нехватки памяти).
 
 
Формат входного списка для каждой программы свой. Рассмотрим сначала более простой формат - список для кодера. Поддерживаются записи следующих типов:Если файл, описанный в списке как защищаемый, не существует - выводится сообщение об ошибке и программа завершает работу. Если же отсутствует незащищённый файл - не страшно, он всё равно включается в список и его можно включить позже, но при восстановлении его длина и дата/время проверяться не будут (подробности см. в описании формата .rrt-файла).
Для версий до 1.19 включительно - в именах файлов и каталогов не допускались русские буквы. Кроме того, если среди имён файлов и/или каталогов были длинные имена и/или имена, содержащие что-либо кроме букв, цифр и знака подчёркивания и заказывался управляющий файл для m2cdm, - надо было его править вручную, заменив строку -isolevel1 на более высокий уровень (см. встроенную справку по m2cdm). Начиная с версии 1.20, уже работает поддержка русских букв (см. --ansi-charset для rrenc) и автоопределение уровня ISO (правильная установка ключа -isolevel при формировании файла параметров для m2cdm).
(Cоветую также принять меры, чтобы (в случае, если .rrd-файл располагается на одном компакт-диске с защищаемыми файлами) он был записан после всех защищаемых файлов - внешний край диска обычно наиболее уязвим для повреждений, а защищённые файлы всё же ценнее, чем избыточность. При использовании m2cdm это сделать несложно - файлы на создаваемом образе сортируются по глубине вложенности каталога, т.е. вложенность .rrd-файла должна быть не меньше вложенности самого глубоко вложенного из защищаемых файлов.)
Глава 3: Копаем глубже.
Теперь пройдёмся по оставшимся опциям.
Advanced опции кодера.
Advanced опции декодера.
Глава 4: Как-со-всёй-этой-фигнёй-взлететь HOWTO
Уфф, теперь можно попробовать воспользоваться свежепрочитанным. :-)
Всё нижеследующее удобнее всего делать под FAR Manager'ом - у вас всё будет под рукой: и текстовый редактор, и командная строка - а больше, в общем-то, ничего и не надо! ;-)
Итак, по пунктам.
0) Cоздание входного списка файлов для rrenc.
1) Защита готового компакт-диска в формате ISO 9660 (т.н. "обычного") ("внешняя защита").
Примерно так:
2) Создание защищённого компакт-диска в формате ISO 9660 (назовём это форматом RR-ISO :-) ).
Почти как в предыдущем случае. Отличия:
3) Создание защищённого XCD-диска (формат RR-XCD).
Гибрид предыдущего случая и классической схемы создания XCD (см., например, домашнюю страничку DeXT'а, "On the way to XCD - or how to turn 700MB CDs into 800MB ones" или страничку XCD на SourceForge). (Правда, использовать cdrtfe, m2cdmgui или иной GUI-frontend, увы, не получится - пока не будет готов frontend к rrenc (я уже доделываю протокол интерфейса).))
Отличия от "обычного" компакта:
4) Восстановление засбоившего компакт-диска.
Собственно то, ради чего всё затевалось. :-) Сначала рассмотрим самый простой случай - сторонние программы не используются, управляющий файл и файл с избыточностью лежат на самом компакте (формат RR-ISO или RR-XCD):
- выбрать каталог, куда восстанавливать файлы, и каталог, где собирать новый образ (если надо (желательно, чтобы каталоги были разными));
 
- запустить программу:
rrdec -s <путь-к-компакт-диску> -@ <путь\файл>.rrt -t <каталог-куда-восстанавливать> -wa -q;
 
- если потом надо будет из восстановленных файлов записать новый диск (особенно в случае, если это RR-XCD-диск) - лучше сразу добавить в строку запуска параметр --output-base=<каталог-для-образа\имя-образа>, а после восстановления - запустить
m2cdm -paramfile <каталог-для-образа\имя-образа>.um2.
 
Более сложный случай - защитные данные лежат не на компакте (например, внешняя защита - по схеме 1). Отличия от предыдущего варианта:Восстановление сбойного компакт-диска с помощью сторонних программ - может понадобиться при большом количестве сбоев. Программы для восстановления сбойных дисков обычно позволяют восстановить приличную часть повреждённых секторов, просто повторяя попытки считать сектор; если же после определённого числа попыток считать сектор не удалось - в восстановленный файл записывается сектор, заполненный нулями, либо прочитанная часть сектора, либо файл "схлопывается" на размер повреждённого сектора - каждая программа делает по-своему. :-(
Я использую бесплатную программу CDCheck - в режиме "Recover" она позволяет выставить число попыток чтения "битого" сектора (или тайм-аут на попытки) и при неудаче заполняет сектор нулями. Кроме того, CDCheck разбирается со сбойными секторами намного быстрее, чем стандартный файловый доступ, - пара секунд на попытку чтения (вместо полминуты).
Предлагаю к использованию следующую схему - отлично восстанавливает ISO-диски с внешней защитой и RR-ISO (к сожалению, RR-XCD берутся не столь изящно - CDCheck читает только фиксированными порциями по 2048 байт):
Возможны, само собой, ложные срабатывания - если в правильных данных были длинные (по 2 килобайта) последовательности нулей (например, такое возможно в заголовках .avi-файлов), но они увеличивают время восстановления на чуть-чуть (несколько секунд) и ими можно пренебречь. (А если таких секторов слишком много - может, в дальнейшем имеет смысл перед записью на болванку сжимать такие файлы архиваторами? :-) )
Этот пост будет неоднократно правиться - тут будет документация на весь пакет cd-rr и её будет много. Поэтому прошу пост ответами не подпирать!
Отв: cd-rr - cd-R eRRoR coRRectoR
Спасибо за проделанную работу. Хотя дисками я и не пользуюсь. ))
Отв: cd-rr - cd-R eRRoR coRRectoR
Отв: cd-rr - cd-R eRRoR coRRectoR
Старый винт на 80 гигов. А вообще - есть же облака и другие файлохранилища. На Яндекс вроде зашифрованные файлы заливать разрешили.
Мой идеал - перфокарты из титана. Но он недостижим. ))
Отв: cd-rr - cd-R eRRoR coRRectoR
cd-rr - cd-R eRRoR coRRectoR: обсуждения со всего мира :-)
В этот пост буду собирать интересные выдержки про cd-rr с разбросанных по инету вопросов с ответами, обcуждений, предложений и т.д. Тоже прошу на пост не отвечать, чтобы не заблокировать его правку.
Отв: cd-rr - cd-R eRRoR coRRectoR
(тоскливо) И понимают же люди, о чем говорят......
Отв: cd-rr - cd-R eRRoR coRRectoR
Так вот, в первом случае моя прога поможет, во втором - увы, таки нет. :-(((((((
cd-rr готовится к пробою 16-битного барьера
Свежие новости с фронтов разработки: найден способ быстро (на полпорядка-порядок быстрее, чем сейчас) считать 32-битные коды Рида-Соломона вместо используемых сейчас 16-битных. Практически это означает возможность перекрывать массивы не по нескольку десятков тире сотен тысяч секторов, как на компакт-диске, а по несколько миллиардов, т.е. за сравнительно разумные временны́е затраты защищать дофигатерабайтный винчестер или FMD-диск третьего поколения. Про такую мелочь, как DVD и блу-рейки, я вообще молчу... :-)
Отв: cd-rr - cd-R eRRoR coRRectoR
Хотел спросить: "Тигра, Тигра, где ты был?"...
Проскроллил и понял.
Отв: cd-rr - cd-R eRRoR coRRectoR
cd-rr: грядут улучшения
Некто persicum подкинул идею насчёт раза в три ускорить умножение в cd-rr. Сижу, реализую.
Интересный тип. Чистый Nazgul. :-) На форуме ICE ECC его даже забанили пожизненно за неудобные вопросы. :-)))))))
Отв: cd-rr - cd-R eRRoR coRRectoR
Наиболее ценное - 16-20 Гиг храню на 2-3 разных носителях. Одновременный выход из строя 2-х разных носителей - крайне (если вообще ....) маловероятное событие. Малоценное, если что - туда и дорога...
Отв: cd-rr - cd-R eRRoR coRRectoR
Если носитель типа "дохнет посекторно" (flash'ка, CD- или DVD-R) - то неплохо коррелируются номера дохнущих в первую очередь секторов у болванок из одной партии. Имел счастье. :-(