Вы здесь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Последние комментарии
Aliki RE:Подайте бедному копеечку на книжку с литреса... 22 часа
weis RE:Прошу переформатировать, распознать, etc... 2 недели larin RE:Заплатила, а абонемента нет и скачать ничего не могу! 4 недели sibkron RE:Серия "Библиотека французской литературы" (Макбел) 1 месяц akorish RE:Регистрация 1 месяц Tramell RE:Серия "Очень прикольная книга", издательство Азбука-классика 1 месяц Larisa_F RE:Серия "Я познаю мир" издательства "АСТ, Астрель, Олимп",... 1 месяц konst1 RE:Ух, как я не люблю спамеров! 2 месяца tvv RE:DNS 2 месяца sem14 RE:«Не забыть бы тогда, не простить бы и не потерять!»-2 ... 2 месяца larin RE:Заблокирован 2 месяца konst1 RE:Серия «Интеллектуальный детектив» изд-ва АСТ 3 месяца Larisa_F RE:Серия книг «Судьбы книг» издательства «Книга» 3 месяца fixel RE:Пропал абонемент 3 месяца sem14 RE:Книжная серия "Жизнь в искусстве" издательство "Искусство"... 4 месяца sibkron RE:"100 славянских романов", серия изд.-ва "Центр книги... 4 месяца Larisa_F RE:Серия "Новые сказочные повести" издательство "Самовар" ... 5 месяцев sem14 RE:Серия "Символы времени" издательства "Аграф" 5 месяцев Впечатления о книгах
mysevra про Игнатова: Волчья верность (Боевая фантастика)
28 06 Очень нравятся истории автора и её стиль изложения. И отношение не поменялось со временем, как это часто бывает. Жаль, что ничего нового нет, во всяком случае, мне не попадалось.
mysevra про Игнатова: Пыль небес (Боевая фантастика)
28 06 Да я бы перечитывала за один только эпизод с фильмами о Яледской битве. «Мне не понравилось то, что они сделали. Без этих людей Новый год будет лучше» - по-моему, самая лучшая форма справедливости.
mysevra про Игнатова: Последнее небо (Боевая фантастика, Научная фантастика)
28 06 Красивая история. Баланс на лезвии между милота и жуть. Яркий мир. Персонаж, который по-хорошему должен вызывать ужас и отвращение как потенциальный враг, но ему сопереживаешь, и во многих ситуациях он оказывается человечнее праведников.
udrees про Михайлов: Пепел доверия-3 (Боевая фантастика, Ужасы, Постапокалипсис, Самиздат, сетевая литература)
28 06 Отличная третья книга из серии про зомбиапокалипсис, хотя конечно там не совсем зомби. Но такого описания конца света в стиле «зомби» и таких противников мне еще не встречалось. Слишком сильных, быстрых, пока не умных и многочисленных. ……… Оценка: отлично!
udrees про Атаманов: Стратег из ниоткуда. Книга третья (Героическая фантастика, Фэнтези, Самиздат, сетевая литература)
28 06 Все отлично. Написано просто, живо, увлекательно. Персонажи тоже яркие и уникальные, как люди, так и нелюди. Предоставленные герою умения оказываются очень полезными в схватке с главными противниками, фактически, помогают ……… Оценка: отлично!
udrees про Каменистый: Рунный практик (Боевая фантастика, Фэнтези, Попаданцы, ЛитРПГ)
28 06 Прекрасное продолжение. Конечно это приключение, где у главного героя все получается, все срабатывает в нужный момент, и как у Бэтмена, для подходящего случая всегда припасен нужный гаджет в кармане, очень кстати оказавшийся ……… Оценка: отлично!
udrees про Мантикор: Тьма в отражении (Боевая фантастика, Технофэнтези, ЛитРПГ, Самиздат, сетевая литература)
28 06 Автор продолжает свое повествование, правда вся книга будет скорее не про путь вниз, а наверх и вбок. Все написано в том же стиле, увлекательно с описанием новых мест и монстров. Глав с перечислением характеристик всех героев ……… Оценка: отлично!
udrees про Мантикор: Истинный враг (Боевая фантастика, Технофэнтези, ЛитРПГ, Самиздат, сетевая литература)
28 06 Продолжение увлекательное, стиль повествования все такой же, но на сей раз действий больше, чем разговоров. Отряд героя продолжает спуск по Стене, и сейчас каждый уровень является обиталищем самых опасных монстров. Но как ……… Оценка: отлично!
trampak про Мясников: Великая Отечественная. 10 000 фактов о войне (История)
27 06 Россия никогда не начинает войн, она их завершает."- эта лживая фраза ставит под сомнение , что автор историк. А кто соврал однажды... Оценка: нечитаемо
Paul von Sokolovski про Логинов: Свет в окошке (Социальная фантастика)
27 06 Очень хорошая, тяжёлая и светлая книжка. То, что все знают - мы живы, пока о нас помнят... у Логинова получает некоторое материальное (?) воплощение. Как быстро мы развеемся? И кто будет помнить нас? Читать, или хотя бы пробовать - всем, всем, всем.
Олег Макаров. про Борчанинов: Лейтенант космического флота [СИ] (Боевая фантастика, Космическая фантастика, Самиздат, сетевая литература)
26 06 Написано хорошо, но не захватывает. Шаблонное космооперное начало. Бросил Оценка: плохо
Олег Макаров. про Иванов: Псоглавцы (Социальная фантастика, Ужасы, Триллер)
26 06 Прочитал. такое впечатление, как в детстве, когда тебе обещали что-то а потом формально выполнили, но радости никакой это не доставило. Не знаю, как по-другому объяснить Оценка: плохо |
Комментарии
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) - то неплохо коррелируются номера дохнущих в первую очередь секторов у болванок из одной партии. Имел счастье. :-(