Вы здесь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Последние комментарии
Larisa_F RE:Кто сможет раздобыть и оцифровать нужные мне книги? 11 часов
Isais RE:Древний Рим. Подборка книг 12 часов NickNem RE:Подайте бедному копеечку на книжку с литреса... 2 дня Isais RE:Семейственность в литературе 3 дня kopak RE:Таинственная личность админа Флибусты 6 дней kopak RE:О группе Дятлова. О той самой, того самого... 6 дней babajga RE:Ласси возвращается домой 1 неделя sem14 RE:Подборка о Первой Мировой 1 неделя Isais RE:удаление "двойников" 1 неделя Isais RE:Кармен Мола - Пурпурная сеть [litres] 2 недели Isais RE:Детство, опаленное войной (Вторая мировая 1939-1945 и ВОВ) 2 недели Isais RE:Катя Водянова - Дом и два жениха в придачу 3 недели Aleks_Sim RE:Прошу переформатировать, распознать, etc... 3 недели Isais RE:Дмитрий Анатольевич Горчев - ЖЖ Дмитрия Горчева (2009–2010) 1 месяц Саша из Киева RE:Детям о Ленине (Издание 1965 года) 1 месяц Саша из Киева RE:Приключения Мишки-Ушастика (Перевод Марата Брухнова) 1 месяц babajga RE:Белая княжна 1 месяц Isais RE:Файл достаточно хорош. Нет смысла в его улучшении. Ага,... 1 месяц Впечатления о книгах
Олег Макаров. про Капба: Как приручить дракона - 4 [СИ] (Альтернативная история, Киберпанк, Фэнтези, Попаданцы, Самиздат, сетевая литература)
24 02 Капба прекрасен как всегда. Четвёртый том не хуже (лучше!) предыдущих, хотя казалось бы куда ещё. Очень отличная книга. Оценка: отлично!
obivatel про Калинин: Вторая Отечественная [litres] (Альтернативная история, Боевая фантастика, Попаданцы)
24 02 Автор датэл: "если именно благодаря революционерам Россия потеряла шанс выйти из нее в качестве главного победителя". . Если пишешь что-то о периоде, не поленись узнать как оно было. Царя опрокинули крупнейшие промышленники ……… Оценка: неплохо
mysevra про Себастьянович: Новая книга о сыроедении, или Почему коровы хищники (Здоровье)
24 02 Подход для таких ленивых как я - нет обязательных самостоятельных чисток. «Мягким тканям потребуется не менее 2 лет, а скелету - около 7.» Непонятно, есть ли это время. Оценка: отлично!
mysevra про Артюшкина: Голем [litres] (Детективная фантастика, Социальная фантастика, Научная фантастика)
24 02 Такой замечательный мир, отличный язык, но невыносимо неспешное развитие событий – кажется вот-вот случится что-то значимое, а нет, очередной проходной момент. Оценка: неплохо
Isais про Абдуллаев: Заговор в начале эры (Исторический детектив, Политический детектив)
24 02 Скучно, нудно, нехудожественно. Вместо живых картин -- картонные декорации, никто из персонажей не вызывает эмоций -- ни любви, ни ненависти, каждый абзац сопровождается таким же по размеру морализаторским поучением, высказанным ……… Оценка: плохо
Nevskaya про Сушков: «Ленинградское дело»: генеральная чистка колыбели революции (Документальная литература)
22 02 Бралась за книгу с трепетом, родная тема, Блокада, Ленинград и все такое... Прочла со стыдом, дочитывала только потому, что не умею бросать начатое. Вранье сплошное, откровенное, бесстыжее, запредельное. Уже много где на форумах ……… Оценка: нечитаемо
Belomor.canal про Акунин: На санях (Современная проза)
22 02 Лучшая, самая лучшая книга Семейной Саги Оценка: отлично!
187 про Царевич: За Отчизну! (История)
21 02 Годная детская книжка, как и Приключения Каспера Берната в Польше и других странах. Оценка: отлично!
Дей про Воспитанник орков
21 02 Какой же ГГ тряпка и слюнтяй. Нет, он храбр и, в общем-то, довольно сообразительный, хоть и несколько тугодум, но он трясётся над жизнью каждой мрази, встречающейся на его пути. Он оставил за спиной несчитанное количество ………
dolle про Корнев: Артефакт острее бритвы (Фэнтези, Приключения: прочее, Самиздат, сетевая литература)
21 02 Неплохо. С каждой книгой сюжет становится динамичнее, интриг и врагов становится больше . Оценка: хорошо
tlittle про Никитин: Бешеный лев (Фэнтези)
20 02 Примитивно. Очень примитивно. Такое впечатление, что художественные "изыски" добавляли в рассказ при втором проходе, они выглядят чужеродными. При этом куча (просто хренова гора) примитивных орфографических ошибок. "Ни как", ……… Оценка: плохо
Barbud про Семин: Конструктор (Попаданцы, Самиздат, сетевая литература)
20 02 Малоинтересное чтиво без художественных достоинств и исторической достоверности. Автор поднаторел на написании сказок с магией и прочими вытребеньками, где не нужно знать историю и следить за отсутствием анахронизмов, поэтому ……… Оценка: нечитаемо |
Комментарии
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) - то неплохо коррелируются номера дохнущих в первую очередь секторов у болванок из одной партии. Имел счастье. :-(