Форум ShareReactor.ru

Вернуться   Форум ShareReactor.ru > Технические вопросы > Технические аспекты мультимедиа
Трейлеры Регистрация Справка Пользователи Календарь Все разделы прочитаны Файловый архив

Технические аспекты мультимедиа Обсуждение вопросов, связанных с мультимедиа технологиями.

Ответ
 
Опции темы
Старый 11.04.2005, 23:30   #1
Житель форума
 
Аватар для Рыжий Тигра
 
Регистрация: 19.03.2005
Адрес: exSU, Украина
Сообщения: 1,266
Спасибо: 32
Поблагодарили 18 раза в 4 сообщении
По умолчанию cd-rr - cd-R eRRoR coRRectoR

Фильмам, программам и базам данных, безвременно погибшим из-за ошибок на компакт-дисках, посвящается.

Предлагаю вниманию публики пакет программ для защиты информации на компакт-дисках: RR, первая общедоступная :unsure: версия - 1.19 (http://elicit.vn.ua/files/outdated/rr119.zip), размер - 138869 байт, способ распространения... пока не знаю, наверно, freeware

Способ защиты основан на старой доброй идее избыточности данных (redundancy), и программ подобного рода - уже великое множество: тут и знаменитый RAR с его recovery-record'ами и recovery-volume'ами, и славный среди фидошников parchive, и почтенная бабушка Альфа-Лоза... Но ни одна из них не годилась для защиты данных на дисках формата XCD, а именно это мне было позарез нужно, так что пришлось написать свою примочку. Вот... вроде получилось. А потом она обросла дополнительными возможностями типа защиты обычных ISO CD-R и даже флоппи-дисков, созрела и вот вышла в свет. :thumbsup:

Всех, кому хватило терпения скачать пакет и продраться через мой псевдоанглийский язык встроенного в программы help'а, прошу высказываться в этом топике. Отвечу на все вопросы, а также буду (по мере свободного времени) давать подробные описания параметров команд и особенностей их применения.

02/11/2012
Последняя на данный момент версия пакета: cd-rr-1.30 - исходные тексты, программы под win32

Глава 0: ЧаВо это такое и на кой?
Цитата:
Я таки не очень понимаю, что данная софтина делает? [...] шифрует компакт диски и при ихнем дефекте сама их же и дешифрует?
Нет. Нам оно не надо. Задача не "чтобы байтики не украли", а "чтобы байтики не погибли при длительном хранении".
Цитата:
зачем это нужно?? Кто сейчас жжОт компакт диски???
Мы, авторы проекта. Мало?
Цитата:
700 Мб
Кстати, таки на сто мег больше. Ради чего, кстати, первоначально проект и затевался.
Цитата:
можно положить на крочешную карту памяти, флэшь USB, да наконец залить на фалообменник! Все эти носители также поддерживают шифрование фриварью, для заливки по сети есть VPN и т.д.
"Можно, не спорю" ((L) поручик Ржевский про "можно впендюрить, а можно и по мордам-с" ). Но это всё средства быстрой и защищённой от посторонних передачи данных, а компакт-диски чаще используются для длительного хранения и общедоступности. Наш пакет позволяет сделать хранение более длительным, только и всего.
Цитата:
Помоему проект немного подустарел, не находишь?
Не-а. Во-первых, не у всех в компах стоят блу-рейки, и даже не во всяком магазине приличные долгоживущие DVD-R'ные болванки дешевле шести-семи приличных долгоживущих CD-R'ных. А в-нулевых, пакет не зря поставляется в исходниках: первый, кто догадается доработать напильником, сможет защищать и блу-рейки - современная вычтехника вполне такое позволяет.
Цитата:
но мне все равно не ясно как можно зашитить болвань софтварью от "физических" царапин [...]??
Хм. Полиномы помнишь? Поля Галуа? Коды Рида-Соломона? Ну вот, это они и есть.

Последний раз редактировалось Рыжий Тигра, 10.01.2014 в 16:56.
Рыжий Тигра вне форума   Ответить с цитированием
Старый 12.04.2005, 06:50   #2
Завсегдатай
 
Регистрация: 16.03.2004
Сообщения: 1,110
Спасибо: 637
Поблагодарили 251 раз в 34 сообщении
По умолчанию RE: RR - cd-R eRRoR coRRectoR

Большое спасибо, дорогой коллега! С огромным интересом попробуем! :-)

MPEG-4 - в массы!
jur вне форума   Ответить с цитированием
Старый 12.04.2005, 23:31   #3
Житель форума
 
Аватар для Рыжий Тигра
 
Регистрация: 19.03.2005
Адрес: exSU, Украина
Сообщения: 1,266
Спасибо: 32
Поблагодарили 18 раза в 4 сообщении
По умолчанию RR - cd-R eRRoR coRRectoR. Глава 1: Начальные сведения.

Что и как оно делает

Работают обе программы до смешного просто.

Пользователь готовит каталог с файлами, затем командой DIR /S /B /A-D /OEN > список-файлов создаёт список, после чего этот список редактирует, убирая из каждой строчки начало (общую часть полного пути) и вставляя перед оставшимся относительным путём ключик с желаемым типом файла и защиты (см. примеры и manual.txt в поставке; чуть позже я распишу этот процесс подробнее).

rrenc (кодер, или защищалка) считывает исходный список файлов, формирует .rrt-файл (управляющий файл для rrdec) и ещё некоторые списковые и управляющие файлы (если таковые заказывались). Затем читается массив защищаемых файлов, по ходу из считанного вычисляются избыточные данные (см. дальше в этой главе описание командной строки кодера, параметр "размер") и в конце концов записываются в выходной .rrd-файл.

Входящая в пакет open-source'ная программа m2cdm - это слегка модифицированный mode2cdmaker от авторов формата XCD. Она получает от rrenc файл описания структуры XCD-диска и создаёт образ, пригодный для записи на болванку.

rrdec (декодер, или восстановилка) считывает .rrt-файл, затем читает массив из защищённых файлов и .rrd-файла (и, если заказано, создаёт копии файлов). По ходу опять же ведутся расчёты и фиксируется номер каждого нечитаемого сектора (а для XCD - ещё и номер каждого сектора с несовпадающей EDC). В конце подсчёта, если битых секторов было не больше, чем секторов с избыточными данными, битые секторы вычисляются и рассовываются по местам. (Кроме того, выполняются ещё кое-какие проверки правильности, но об этом позже.) Всё! Либо ваши данные восстановлены полностью, либо... битых секторов было слишком много - пробуйте на другом приводе, вдруг удастся прочитать больше...

Как его запускать

Обе программы - rrenc и rrdec - построены на стандартном юниксовом консольном интерфейсе командной строки. Кто работал с DOS'ом или UNIX'ом - знают. Кто не в курсе - спрашивайте (у меня или у тех, кто знает ). Кто знает URL'у на толковое описание на русском - делитесь.

Итак, программы отзываются на стандартный ключ -h (или --help) и выдают список параметров.

Формат командной строки кодера:

rrenc <обязательные-ключи> [ необязательные-ключи ] <размер> <RR-список> [ RR-данные ]

Строго говоря, обязательный ключ только один - --input-list; возможно, в будущем появятся ещё. Набор необязательных ключей (опций) куда более обширен и постоянно изменяется.

Размер - это, собственно, количество секторов избыточных данных; размер сектора зависит от формата - для ISO-файлов это 2048 байт, для XCD - 2324 байта. Количество секторов на компакт-диске, само собой, не зависит от типа диска (ISO или XCD) - только от его номинальной ёмкости; на обычный 80-минутный ("700-мегабайтный") CD-R / CD-RW помещается около 360000 секторов; соответственно, предельный суммарный размер данных и избыточности выбран близко к этому значению и составляет 393 210 секторов, или примерно 767 мегабайт - этого с головой хватит на любой overburn
Какой именно размер заказывать - сказать трудно. Я обычно задаю от полпроцента до двух процентов объёма диска, т.е. 1800...7200 секторов - это требует от 20 минут до полутора часов работы программы. (При первых испытаниях технологии, чтобы получить три с половиной тысячи сбойных секторов, мне пришлось исцарапать гвоздём добрую четверть поверхности компакт-диска!)

RR-список, или .rrt-файл (от "RR-lisT") - это описатель набора защищённых файлов, он генерируется в самом начале расчёта защитных данных и является обычным текстовым файлом (правда, в формате UNIX-текста, т.е. редактировать его встроенным редактором FAR Manager'а удобно, а штатным форточным "Блокнотом" - не очень. Впрочем, если кому-то это покажется неудобным - no problemo, переделаю. )

RR-данные, или .rrd-файл - это файл, в который будут записаны собственно избыточные данные (RR-Data). Параметр необязательный, хотя зачем ему быть необязательным - честно говоря, не помню и в ближайших версиях эту неувязку устраню. В момент начала расчёта создаётся пустой файл, по завершении расчёта - заполняется реальными данными.

Пути к .rrt- и .rrd-файлам задаются относительно --target-dir, т.е. задавать абсолютный путь нельзя!

Формат командной строки декодера:

rrdec <обязательные-ключи> [ необязательные-ключи ]

Обязательный ключ также только один (--input-list), а список опций - куда обширнее. (Предлагаю не рассматривать режим совместимости со старыми версиями - уважаемой публике он не нужен, а мне... тоже, в общем-то, ни к чему, просто никак не соберусь его выкорчевать.)

Последний раз редактировалось Рыжий Тигра, 02.11.2012 в 14:48.
Рыжий Тигра вне форума   Ответить с цитированием
Старый 12.04.2005, 23:52   #4
Живая Легенда
 
Аватар для Aquarius
 
Регистрация: 16.06.2003
Адрес: Kingdom Of Heaven
Сообщения: 4,705
Спасибо: 256
Поблагодарили 7 раза в 3 сообщении
По умолчанию RE: RR - cd-R eRRoR coRRectoR

Есть в планах на будующее создание Gui для программы?

Take my love. Take my land.
Take me where i cannot stand.
I don't care,i'm still free.
You can't take the sky from me.
Aquarius вне форума   Ответить с цитированием
Старый 13.04.2005, 00:11   #5
Житель форума
 
Аватар для Рыжий Тигра
 
Регистрация: 19.03.2005
Адрес: exSU, Украина
Сообщения: 1,266
Спасибо: 32
Поблагодарили 18 раза в 4 сообщении
По умолчанию RE: RR - cd-R eRRoR coRRectoR

Цитата:
Есть в планах на будующее создание Gui для программы?
Из todo.txt:
Цитата:
todo:

- защиту .rrt-файла (уже знаю как, но нужно много переделывать);
- поддержку русских букв в именах файлов;
- вразумительную проверку корректности входных списковых файлов для rrenc;
- документацию.

NOT todo:
- GUI (let others do!)
Кошмарно не люблю GUI рисовать. Да и не умею. ИМХО лучше текстового консольного (телетайпного) диалога может быть только интерфейс командной строки (бо можно с батника запускать) )

05/10/2007: В качестве GUI front-end'а для rrenc при создании XCD можно использовать cdrtfe, а для rrdec - делаю, может, скоро будет.

Последний раз редактировалось Рыжий Тигра, 05.10.2007 в 11:33.
Рыжий Тигра вне форума   Ответить с цитированием
Старый 15.04.2005, 00:28   #6
Житель форума
 
Аватар для Рыжий Тигра
 
Регистрация: 19.03.2005
Адрес: exSU, Украина
Сообщения: 1,266
Спасибо: 32
Поблагодарили 18 раза в 4 сообщении
По умолчанию RR - cd-R eRRoR coRRectoR. Глава 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 командой 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-файл без изменений.

-l <метка>
- метка диска (запись аналогична ключу --volume-label, но приоритет у неё пониже).

-c <параметр>
- дополнительный параметр для m2cdm. Строка <параметр> без всяких изменений добавляется в файл параметров для m2cdm (см. ключ --output-base; если этот ключ не задан - параметр попросту игнорируется).

-d <каталог> (работает с версии 1.21)
- запись о каталоге. Означает, что все следующие за этой строкой файлы должны собираться в указанный каталог, если включена опция --process-dir, иначе запись игнорируется и каталог формируется из путевой части имени файла (для простоты создания списка вручную ).

-<тип> <файл>
- запись о файле. Тип может принимать значения: f - обычный (ISO 9660) файл без никакой защиты; i - защищённый ISO-файл; x - защищённый мультимедиа- (XCD-) файл; m - XCD-файл без защиты (трудно сказать, зачем такие файлы нужны, но тоже поддерживаются ); I или X - то же, что и i / x, но с выравниванием по границе кластера (были нужны в старых версиях, сейчас используются только для внутренних нужд или при отладке). Если файл, описанный как защищаемый, не существует - выводится сообщение об ошибке и программа завершает работу. Если же отсутствует незащищённый файл - не страшно, он всё равно включается в список, но при восстановлении его длина и дата/время проверяться не будут (подробности см. в описании формата .rrt-файла).

<файл> обязательно должен быть относительным путём (относительно --source-dir, само собой); однако, начиная с версии 1.25, можно задавать и абсолютный путь - при заданном ключе --process-dir и пустом --source-dir (это может оказаться полезным для запуска rrenc из-под другой программы, из-под GUI, например).

-@
- запись об .rrt-файле. Эквивалентно -f <.rrt-файл> - имя берётся из командной строки, тип файла - ISO, без защиты (странно, конечно, что самый важный файл в системе защиты записывается без защиты, но в этом направлении я тоже копаю; а пока я просто при записи каждого диска копирую на него .rrt-файлы с предыдущих дисков).

-r
- запись об .rrd-файле. Аналогично предыдущему случаю: имя - из командной строки, защищённый, выравненный. Тип - XCD, если среди защищаемых был хотя бы один XCD-файл, ISO - в противном случае. В списке запись должна стоять после всех защищаемых файлов, иначе будет выдано сообщение об ошибке.

Внимание: для версий до 1.19 включительно - в именах файлов и каталогов допускаются пробелы, но не допускаются (пока) русские буквы. Кроме того, если среди имён файлов и/или каталогов есть длинные имена и заказывался управляющий файл для m2cdm - надо его подправить вручную, заменив строку -isolevel1 на более высокий уровень (см. m2cdm -h). Начиная с версии 1.20 уже работает и поддержка русских букв (см. rrenc - описание ключа --ansi-charset), и автоопределение уровня ISO (правильная установка ключа -isolevel при формировании файла параметров для m2cdm).

(Cоветую также принять меры, чтобы (в случае, если .rrd-файл располагается на одном компакт-диске с защищаемыми файлами) он был записан после всех защищаемых файлов - внешний край диска обычно наиболее уязвим для повреждений, а защищённые файлы всё же ценнее, чем избыточность. При использовании m2cdm это сделать несложно - файлы на создаваемом образе сортируются по глубине вложенности каталога, т.е. вложенность .rrd-файла должна быть не меньше вложенности самого глубоко вложенного из защищаемых файлов.)

Последний раз редактировалось Рыжий Тигра, 02.11.2012 в 14:54.
Рыжий Тигра вне форума   Ответить с цитированием
Старый 16.04.2005, 23:50   #7
Житель форума
 
Аватар для Рыжий Тигра
 
Регистрация: 19.03.2005
Адрес: exSU, Украина
Сообщения: 1,266
Спасибо: 32
Поблагодарили 18 раза в 4 сообщении
По умолчанию RR - cd-R eRRoR coRRectoR: испытание сбоем

Цитата:
буду пробовать... только у меня hex editor'а нет нормального, чем издеваться над защищаемым файлом (симулировать потери данных)
Diskedit от нортон-утилит. Или hiew.

Поганить обычный файл как таковой - не поможет: rrdec отловит, что файлы и избыточность друг другу не соответствуют. Для имитации сбоя можно:
1) делать образ mode2cdmaker'ом, а потом портить в нём, а затем монтировать образ чем-нибудь вроде Daemon Tools - будет эмулироваться сбойный сектор;
2) записывать на CD-RW, а затем заляпывать зелёнкой - тогда будет натуральный сбой, а зелёнка легко водой смывается;
3) делать XCD-файлы, монтировать образ, копировать .xcd на винт и поганить hex-редактором - будут несовпадения EDC;
4) при удалении защищённого файла он трактуется как сплошной сбой и пытается восстановиться, если избыточности хватит;
5) аналогично при изменении длины;
6) наконец, можно как я когда-то (когда не знал о волшебных свойствах зелёнки ) - на болванку и гвоздём по ней, гвоздём!

Полный текст сообщения об ошибке - в студию, плиз!

-= Дотошные Рыжики =-

h**p://lib.rus.ec/user/9975 - это тоже я
Рыжий Тигра вне форума   Ответить с цитированием
Старый 20.04.2005, 23:34   #8
Житель форума
 
Аватар для Рыжий Тигра
 
Регистрация: 19.03.2005
Адрес: exSU, Украина
Сообщения: 1,266
Спасибо: 32
Поблагодарили 18 раза в 4 сообщении
По умолчанию RR - cd-R eRRoR coRRectoR. Глава 3: Копаем глубже.

Теперь пройдёмся по оставшимся опциям.

Advanced опции кодера.

-p <файл>, --plain-list=<файл>
- запрос на генерацию списка файлов (простой текстовый формат, аналог вывода команды DIR /S /B /A-D. Пригоден для создания на его основе .bat-файлов, входных списков для архиваторов... вообще может пригодиться. (Я из него делаю батник для расчёта md5-сумм.)

-r файл, --rrdata-header=<файл>
- заголовок для .rrd-файла. Можно написать словами что-то вроде "Я - ФАЙЛ ИЗБЫТОЧНОСТИ, ЗАЩИТА ФИЛЬМА такого-то, НЕ ЗАПУСКАЙТЕ МЕНЯ!!!". Поскольку на XCD-диске .rrd-файл получает то же расширение, что и фильм, не исключено случайное скармливание этого файла плееру (с последующим выпадением последнего в осадок). Поэтому я в качестве заголовка использую маленький (меньше 16 килобайт) фильм из одного кадра, в котором торчит надпись "ЭТО НЕ ФИЛЬМ!" (см. файл rrd_head.ogm либо rrd_head.ogm в пакете поставки).

-a, --ansi-charset
- задание ANSI-кодировки входного списка файлов и выходного .rrt-файла. Значение по умолчанию: кодировка OEM/DOS. Правильная установка кодировки влияет на правильность обработки файлов с русскими буквами в именах.

-u, --multi-track (с версии 1.25)
- режим создания многодорожечного образа XCD. Значение по умолчанию: однодорожечный XCD. Имеет смысл только при создании файла параметров для m2cdm, больше ни на что не влияет.

-i, --strict-mode
- добавление в записи .rrt-файла длины и даты/времени для всех файлов (по умолчанию длина и дата/время сохраняются только для защищаемых файлов - для проверки их на изменения и для восстановления точной длины .xcd-файлов). Эта опция связана с одним неудобством m2cdm: при создании образа всем файлам (и .xcd, и обычным) присваивается дата/время создания образа, и потом сложно разобраться - какая версия какого файла более свежая.
(Upd от 02/11/2012: начиная с версии 1.30 m2cdm уже пишет правильную дату-время файла.)


-k, --fake-output
- никаких вычислений - только генерация .rrt-файла (и сопутствующих файлов - см. ключи --output-base, --plain-list=<файл>), проверка защищаемых файлов на отсутствие ошибок чтения и генерация заполненного нулями фальшивого .rrd-файла требуемого размера. (Удобно для проверок - получится ли, уместится ли на болванку...)

-n, --no-read-files
- то же самое, что и --fake-output, но даже без проверки на чтение. Работает очень быстро - порядка секунды.

Advanced опции декодера.

-a, --all-files
- режим восстановления c компакт-диска всех файлов, включая незащищённые. Полезен, например, при создании ещё одной копии компакт-диска. Разумеется, в случае сбоя на незащищённом файле восстанавливать его нечем - файл попросту либо не будет восстановлен, либо получит дополнительное расширение .bad, в зависимости от наличия опции --keep-broken (см. ниже). Несовместимость с --no-restore.

-u <путь>, --update-dir=<путь>
- каталог обновлений, т.е. каталог, из которого при восстановлении нужно брать обновлённые версии файлов, помеченных как незащищённые (драйверы, кодеки, плееры,... - всё то, что особой ценности не представляет, есть на каждом диске и периодически обновляется). Степень свежести файлов, естественно, не проверяется; если файл, описанный в .rrt-файле, есть в каталоге обновлений, его длина совпадает с заданной и файл открылся без ошибок - он подменяет собой соответствующий файл из исходного каталога, иначе используется исходный файл. (Для отладки: если файл из каталога обновлений имеет нулевую длину - rrdec действует так, как если бы исходный файл отсутствовал.) Опция, само собой, имеет смысл только вместе с опциями --all-files или --update-protected (см. ниже). Никак не соотносится ни с --source-dir, ни с --target-dir.

-r, --update-protected
- позволяет аналогичным образом обновлять также и защищённые файлы - например, в случае, если оригинальный файл на компакт-диске отсутствует или имеет слишком много повреждений (или по ошибке записан фальшивый .rrd-файл вместо правильного (см. rrenc, опцию --fake-output) - со мной такое однажды было. ), а под руками есть правильная копия. Опция, естественно, не имеет смысла без опции --update-dir. Применять с осторожностью!

-p, --copy-only
- только копировать файлы (и извлекать содержимое .xcd-файлов, если не задано --xcd-output); сбои не восстанавливать (заполнять битые секторы нулями; если задано --xcd-output - со специально запорченным полем EDC), на пригодность к восстановлению не проверять. (Зачем оно мне понадобилось - не помню... Пусть будет - где-нибудь да пригодится. ) Не имеет смысла без --target-dir. Несовместимость с --no-restore.

-n, --no-restore
- не восстанавливать файлы (кроме .xcd - из них извлекать содержимое). Режим, в принципе, полезен для создания образа m2cdm'ом из копии на винчестере (см. опцию --output-base). Не имеет смысла без --target-dir. Несовместимость с --copy-only, --all-files, --xcd-output.

-x, --xcd-output
- при копировании/восстановлении не извлекать содержимое из .xcd-файлов - копировать их как есть (само собой, исправлять сбои, если не задано --copy-only). Не имеет смысла без --target-dir. Несовместимость с --no-restore, --output-base.

-b, --keep-broken (пока не работает - будет поддерживаться в следующей версии)
- не удалять копии файлов, недовосстановленных из-за фатальной ошибки или не подлежащих восстановлению (т.е. при нехватке избыточных данных для восстановления, либо при повреждении незащищённых файлов); такие файлы переименовываются с дополнительным расширением .bad

-z, --zero-damaged
- расценивать секторы, заполненные нулями, как битые. Со всеми вытекающими: незащищённые файлы удалять (либо переименовывать в .bad, если задано --keep-broken), защищённые - восстанавливать (если не задано --no-restore либо --copy-only). Режим полезен при попытке восстановления файлов, скопированных со сбойного компакт-диска в режиме --copy-only либо после аварийного восстановления cdcheck'ом (либо любой другой программой, которая заполняет непрочитанные секторы нулями).

-f <число-секторов>, --on-the-fly=<число-секторов>
- задаёт максимальное количество битых секторов для восстановления "на лету" - при первом проходе, во время начального копирования файлов с компакт-диска на винчестер (т.е. если сбойных секторов было не более, чем заказано в параметре, то все сбои будут восстановлены в ходе копирования и повторный проход уже не нужен). Значение по умолчанию: 72 сектора, что примерно соответствует одной минуте процессорного времени для P4 2.4 ГГц. Нулевое значение полностью отключает эту возможность, т.е. все расчёты будут выполняться только на втором проходе (это полезно, если у вас медленный процессор и быстрый винчестер, но неудобно при проверке компакт-диска (если не задан --target-dir), особенно для XCD).

Последний раз редактировалось Рыжий Тигра, 02.11.2012 в 15:00.

Полный текст сообщения об ошибке - в студию, плиз!

-= Дотошные Рыжики =-

h**p://lib.rus.ec/user/9975 - это тоже я
Рыжий Тигра вне форума   Ответить с цитированием
Старый 17.05.2005, 23:37   #9
Житель форума
 
Аватар для Рыжий Тигра
 
Регистрация: 19.03.2005
Адрес: exSU, Украина
Сообщения: 1,266
Спасибо: 32
Поблагодарили 18 раза в 4 сообщении
По умолчанию RR - cd-R eRRoR coRRectoR. Глава 4: Как-со-всёй-этой-фигнёй-взлететь HOWTO

Всё нижеследующее удобнее всего делать под FAR Manager'ом - у вас всё будет под рукой: и текстовый редактор, и командная строка - а больше, в общем-то, ничего и не надо!
Итак, по пунктам.

0) Cоздание входного списка файлов для rrenc.

a) cd в каталог, который (и подкаталоги которого) защищаем.

b) dir /a-d /s /b /oen > список.txt - строим список файлов; порядок сортировки не важен, нужно только, чтобы в списке были только имена файлов с путями (никаких имён каталогов!) и чтобы при длинных именах файлов не было кавычек.

(Русские буквы в именах файлов поддерживаются начиная с версии 1.20 - пожалуйста, обновите программу! Украинские буквы 'I' или 'i', а также символы, которые есть только в наборах символов ANSI и Unicode (открывающие и закрывающие кавычки, символы "промилле" и "копирайт", некоторые другие) в кодировке OEM/DOS не поддерживаются и поддерживаться в ближайшем будущем не собираются - благодаря досадному ляпу нашего друга Билла Гейтса, эти символы попросту отсутствуют в кодировке.)

c) Редактируем файл список.txt любым текстовым редактором, позволяющим контекстную замену. (Если есть файлы с русскими буквами в именах - позаботьтесь, чтобы редактор корректно работал с кодировкой OEM/DOS, либо сразу ориентируйтесь на ANSI.) Нужно в каждой строке списка заменить постоянную часть полного пути (собственно, путь к каталогу из п. (a) ) на ключик, задающий желаемый тип файла и тип защиты (см. здесь или во встроенной справке по rrenc). Можно также убрать из списка файлы, которые на компакт-диске не нужны, и добавить файлы, которых пока нет (например, файл с контрольными суммами - обычно они вычисляются в последнюю очередь, когда всё остальное уже готово).

d) В списке надо предусмотреть место для .rrt-файла (ключик -@ без параметров, подробности см. там же). Рекомендую располагать его в начале списка (тогда он будет размещён на компакт-диске ближе к середине, в наиболее безопасном месте), а после окончания работы rrenc - делать ещё и резервную копию.

e) Желательно также явно добавить ключик -r - место для .rrd-файла (ближе к концу списка - важно, чтобы он стоял после последнего защищаемого файла). Конечно, если его не будет - ничего страшного не произойдёт, программа сама добавит его в конец списка. Но в следующих версиях я намерен разрешить размещать .rrd-файл в любом месте списка и в любом каталоге.

1) Защита готового компакт-диска в формате ISO-9660 (т.н. "обычного") ("внешняя защита").

Примерно так:
- выбрать, какие файлы защищать надо, а какие - нет;
- выбрать каталог, куда будут складываться создаваемые rrenc'ом файлы, и их имена;
- сделать список (см. выше), используя для защищаемых файлов ключик -i;
- выбрать желаемый размер избыточности (см. формат командной строки кодера, параметр <размер>);
- запустить программу:
rrenc -s <путь-к-компакт-диску> -t <каталог-для-результатов> -@<список> -wci -q <размер> <файл>.rrt <файл>.rrd
- дождаться окончания расчёта (для процессора Pentium-4 2.4 ГГц - примерно по 10-12 минут на каждую тысячу секторов избыточности);
- если расчёт не дошёл до конца из-за ошибок - повторить, задав в строке ключ -v вместо -q, прочитать сообщение об ошибке, устранить причину, попробовать ещё раз; если ничего не помогает - обратиться ко мне (через форум или персонально), отвечу обязательно!
- если ошибок не было и расчёт дошёл до конца - сохранить его результаты (<файл>.rrt и <файл>.rrd) в надёжном месте, потом пригодятся для восстановления.

2) Создание защищённого компакт-диска в формате ISO-9660 (назовём это форматом RR-ISO ).

Почти как в предыдущем случае. Отличия:
- если защитные данные будут храниться на самом компакт-диске - параметр -t <каталог-для-результатов> в строке запуска не задавать, но предусмотреть запас места для файла избыточности (<размер> * 2048 байт);
- если защищаемые данные будут записываться на компакт в виде архива - нужно сначала заархивировать, а потом защищать (здравый смысл: для восстановления повреждённого диска надо иметь .rrt- и .rrd-файлы, а как их извлечь из повреждённого архива? );
- для проверки, уместятся ли данные вместе с избыточностью на компакт-диск, можно добавить в строку запуска ключ --no-read-files - будет быстро (за секунды) сгенерирован фальшивый .rrd-файл; с ним можно прикинуть размер, но записывать его на компакт нельзя, надо выполнить рабочий расчёт (без --no-read-files).

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 (я уже доделываю протокол интерфейса).))
Отличия от "обычного" компакта:
- дополнительно нужна программа m2cdm (поставляется вместе с rrenc и rrdec). На самом деле это mode2cdmaker версии 1.5.1 от DeXT'а (http://dext.peque.org/xcd/mode2cdmaker-1.5.1-src.zip), слегка модифицированный. Дело в том, что оригинальный mode2cdmaker (по крайней мере, известные мне версии) в режимах -isolevel1 и -isolevel2 неправильно обрабатывает русские буквы в именах файлов и случаи, когда в одном каталоге есть несколько файлов с именами, которые после преобразования к соответствию стандарту ISO дают одинаковые строки. С другой стороны, нет гарантии, что диск, не соответствующий ISO Level-1, будет читаться под всеми операционными системами. Поэтому - пожалуйста, старайтесь не делать RR-XCD-диски с длинными именами файлов и русскими буквами! (Впрочем, rrenc начиная с версии 1.20 по умолчанию включает для m2cdm режим -isolevel1, но выключает его, если хотя бы один из файлов не вписывается в стандарт ISO Level-1. А в следующих версиях я что-нибудь придумаю - хотя поддержку RockRidge и MS Joliet не обещаю.)
- во входном списке можно использовать ключики типов файлов -f, -i, -x и даже -m (см. формат списка для кодера);
- нужно выбрать каталог и имя для файлов образа диска, которые будут созданы m2cdm'ом;
- в строку запуска надо добавить ключ --output-base=<каталог\имя-образа> (именно имя, без расширения!) - будет создаваться m2cdm'ный файл параметров по имени <каталог\имя-образа>.um2;
- после завершения расчёта нужно выполнить собственно генерацию образа - командой
m2cdm -paramfile <каталог\имя-образа>.um2

4) Восстановление засбоившего компакт-диска.

Собственно то, ради чего всё затевалось. Сначала рассмотрим самый простой случай - сторонние программы не используются, управляющий файл и файл с избыточностью лежат на самом компакте (формат RR-ISO или RR-XCD):
- выбрать каталог, куда восстанавливать файлы, и каталог, где собирать новый образ (если надо (желательно, чтобы каталоги были разными));
- запустить программу:
rrdec -s <путь-к-компакт-диску> -@ <путь\файл>.rrt -t <каталог-куда-восстанавливать> -wa -q;
- если потом надо будет записать новый диск (особенно в случае, если это RR-XCD-диск) - лучше сразу добавить в строку запуска параметр --output-base=<каталог-для-образа\имя-образа> (а после восстановления - запустить
[b]m2cdm -paramfile <каталог-для-образа\имя-образа>.um2.

Более сложный случай - защитные данные лежат не на компакте (например, внешняя защита - по схеме 1). Отличия от предыдущего варианта:
- выложить .rrt- и .rrd-файлы в каталог, доступный для чтения (не в тот же самый, куда будет восстанавливаться содержимое компакта!);
- в строку запуска добавить параметры --update-dir=<каталог> --update-protected;
- при записи нового диска из восстановленных файлов весьма желательно записать на него и защитные данные (если хватит места).

Восстановление сбойного компакт-диска с помощью сторонних программ - может понадобиться при большом количестве сбоев. Программы для восстановления сбойных дисков обычно позволяют восстановить приличную часть повреждённых секторов, просто повторяя попытки считать сектор; если же после определённого числа попыток считать сектор не удалось - в восстановленный файл записывается сектор, заполненный нулями, либо прочитанная часть сектора, либо файл "схлопывается" на размер повреждённого сектора - каждая программа делает по-своему.

Я использую бесплатную программу CDCheck - в режиме "Recover" она позволяет выставить число попыток чтения "битого" сектора (или тайм-аут на попытки) и при неудаче заполняет сектор нулями. Кроме того, CDCheck разбирается со сбойными секторами намного быстрее, чем стандартный файловый доступ - пара секунд на попытку чтения (вместо полминуты).

Предлагаю к использованию следующую схему - отлично восстанавливает ISO-диски с внешней защитой и RR-ISO (к сожалению, RR-XCD берутся не столь изящно - CDCheck читает только фиксированными порциями по 2048 байт):
- скопировать диск в каталог программой CDCheck в режиме Recover, задав небольшое количество повторов на сбойных секторах (2-5 повторов вполне хватит) и отключив режим статистической проверки;
- взять подходящую к случаю командную строку из предыдущих вариантов, заменив в ней -s <путь-к-компакт-диску> на -s <путь-к-копии> и добавив --zero-damaged (см. advanced опции декодера).

Возможны, само собой, ложные срабатывания - если в правильных данных были длинные (по 2 килобайта) последовательности нулей (например, такое возможно в заголовках .avi-файлов), но они увеличивают время восстановления на чуть-чуть (несколько секунд) и ими можно пренебречь. (А если таких секторов слишком много - может, в дальнейшем имеет смысл перед записью на болванку сжимать такие файлы архиваторами? )

Последний раз редактировалось Рыжий Тигра, 02.11.2012 в 15:01.

Полный текст сообщения об ошибке - в студию, плиз!

-= Дотошные Рыжики =-

h**p://lib.rus.ec/user/9975 - это тоже я
Рыжий Тигра вне форума   Ответить с цитированием
Старый 19.05.2005, 09:37   #10
Житель форума
 
Аватар для Рыжий Тигра
 
Регистрация: 19.03.2005
Адрес: exSU, Украина
Сообщения: 1,266
Спасибо: 32
Поблагодарили 18 раза в 4 сообщении
По умолчанию RR - cd-R eRRoR coRRectoR: свежая версия

Ура! Я наконец выложил свежую версию, как обычно - на RapidShare (http://rapidshare.de/files/1843782/rr-1.20.zip.html), весит 155047 байт.

Нового в версии 1.20:
- полнообъёмная поддержка русских букв в именах файлов;
- работа с обеими кодировками - OEM (консоль) и ANSI (GUI);
- слегка переделанный m2cdm (тоже под русские буквы и две кодировки);
- мелкая кучка исправленных ошибок;
- первые кусочки документации на английском языке.

Кроме того, есть чем порадовать любителей GUI: я начал работу над интерфейсом между rrenc и внешней графической оболочкой - глядишь, что нибудь и получится...

30/01/2006
Версия 1.20 доступна по адресу http://elicit.vn.ua/files/outdated/rr-1.20.zip.

Последний раз редактировалось elic, 01.02.2006 в 22:00.

Полный текст сообщения об ошибке - в студию, плиз!

-= Дотошные Рыжики =-

h**p://lib.rus.ec/user/9975 - это тоже я
Рыжий Тигра вне форума   Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:08.


vBulletin® 3.6.8, Copyright ©2000-2014, Jelsoft Enterprises Ltd.
Перевод: RSN-TeaM (zCarot)