Вы здесь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Последние комментарии
NickNem RE:Подайте бедному копеечку на книжку с литреса... 4 часа
Aleks_Sim RE:Ирина Александровна Велембовская - Немцы 20 часов Саша из Киева RE:Кто сможет раздобыть и оцифровать нужные мне книги? 2 дня Саша из Киева RE:Избранное 6 дней Alligatoreader RE:Багрепорт - 2 1 неделя fedor.de RE:Отображение страницы Librusek 1 неделя Isais RE:Чиполь Сергеевич Наглецов - Огненный дракон [СИ] 1 неделя kopak RE:Таинственная личность админа Флибусты 1 неделя blahblahblah2024 RE:Беженцы с Флибусты 1 неделя sem14 RE:Что читать о блокаде Ленинграда. Подборка книг 2 недели sem14 RE:Михаил Юрьевич Берг - Андеграунд. Итоги. Ревизия_5 3 недели TaKir RE:Валерия Сергеевна Черепенчук А. Н. Николаева - Мифы... 3 недели Oleg V.Cat RE:B343695 Александр. Книга 1 3 недели Isais RE:Калибрятина/Самиздатина 4 недели md2k15 RE:Относительно Вархаммер 40 000 1 месяц tvnic RE:"Коллектив авторов" 1 месяц SergL197 RE:Регистрация 1 месяц ejik.v RE:Viva Stiver! 1 месяц Впечатления о книгах
lukmak про Сочинения Иосифа Бродского в 7 томах
29 11 Бродский - гений. А кто его не понимает - что ж... Он непрост. Но, ребята, если вы его не понимаете - может, это ваша проблема?.. И пиндосы тут ни при чём.
nik_ol про Донцова: Амур с гранатой (Иронический детектив, Детективы: прочее)
27 11 Конечно, я рада, что книги Донцовой выходят и выходят, но неужели, если она сама их пишет, то не помнит, что «старичок» был не Коробков, а Гри, её первый муж, до Ивана в этой серии?! Или всё-таки литературные негры клепают?! Оценка: неплохо
neletay про Котов: Ценитель [СИ] (Городское фэнтези, Самиздат, сетевая литература, Приключения)
27 11 Прочитала только несколько первых глав - и уже очень, очень нравится. Нравится все - сюжет, стиль, язык, ГГ, а также автор, который за всем этим видится. С удовольствием читаю дальше, надеюсь не разочароваться.
Lan2292 про Ермаков: Май, весна и апокалипсис. Книга 1 (Боевая фантастика, ЛитРПГ, Самиздат, сетевая литература)
27 11 Так себе чтиво, но не скучно. Оценка: неплохо
Chernovol про Коровин: После «Украины» (Политика, Публицистика)
25 11 Интересно, такие книги кто-то покупает или их бесплатно раздают. Оценка: нечитаемо
sem14 про Лазарис: Белая ворона (Историческая проза)
25 11 Леонид Гомберг 24 июля 2007 Роман известного в Израиле прозаика, поэта и переводчика Владимира Лазариса «Белая ворона» (Тель-Авив: Ладо, 2003) в этом году был включен в «лонг-лист» популярной премии «Букер». И это ……… Оценка: отлично!
decim про Осне Сейерстад
25 11 Попробовала бы Сурайя-реис не подать в суд! Муж бы убил. "Для контекста добавлю, что после публикации книги семья героя подала на Сейерстад в суд за клевету, но после апелляции писательница была признана невиновной, а через ………
tvv про Кич: Большой дом [СИ] (Ужасы, Мистика, Фанфик, Юмористическое фэнтези)
24 11 Совершенно замечательное "Оккультное Простоквашино".
decim про Галинакс: Женщина-рыцарь. Самые необычные истории Средневековья (Исторические приключения, История)
24 11 А вот это уже лучше. Подлинник на сей раз не знаю, а компиляция - явно автор чем-то вдохновлялся, но не ссылается на - получилась годная, и хорошо подобраны иллюстрации. Неплохо. Оценка: неплохо
udrees про Быкова: Школьники «ленивой мамы» (Педагогика, Детская психология)
24 11 Очередная книга про воспитание ребенка, теперь уже в школе. Советы в целом ценные, но явно объем книги их все не может вместить, поэтому думаю можно воспринимать текст как информацию к размышлению, а дальше самим продумывать ……… Оценка: хорошо
udrees про Баковец: Обычная жизнь обычного японца (Фэнтези, Самиздат, сетевая литература)
24 11 Угарная книга про приключения попаданца, оказавшегося в теле японского задрота-клерка. Автор видимо в теме про японское общество, имеется множество описаний нюансов про офисную жизнь, иерархию, привычки японцев, домашний быт. ……… Оценка: хорошо
udrees про Кузичева: Чехов. Жизнь «отдельного человека» (Биографии и Мемуары)
24 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) - то неплохо коррелируются номера дохнущих в первую очередь секторов у болванок из одной партии. Имел счастье. :-(