Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Хочу все знать (http://forum.oszone.net/forumdisplay.php?f=23)
-   -   Как работают тома для восстановления в WinRar? (http://forum.oszone.net/showthread.php?t=235977)

rsod 04-06-2012 22:03 1928119

Как работают тома для восстановления в WinRar?
 
Выдержка из справки:
Цитата:

Тома для восстановления представляют собой особые файлы с расширением .rev, создаваемые WinRAR и служащие для воссоздания отсутствующих и повреждённых томов в многотомном архиве. Тома для восстановления можно использовать только с многотомными архивами.

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

С помощью каждого тома для восстановления можно воссоздать один отсутствующий том RAR-архива. Например, если архив состоит из 30 томов, и для него создано три тома для восстановления, вы сможете воссоздать любые три отсутствующих тома. Если файлов .rev меньше, чем отсутствующих томов, воссоздание такого архива невозможно. Общее количество обычных томов и томов для восстановления не может превышать 255, а томов для восстановления должно быть меньше, чем томов RAR-архива.

После создания томов для восстановления исходные тома RAR-архива модифицировать нельзя. При воссоздании отсутствующих томов RAR алгоритм восстановления использует данные, хранящиеся как в REV-файлах, так и в томах RAR. Поэтому если после создания REV-файлов вы измените тома RAR, например, заблокируете их от изменения, то восстановление выполнить не удастся.

Чтобы WinRAR воссоздал недостающие и повреждённые тома, нужно либо щёлкнуть мышью на файле .rev, либо воспользоваться командой rc. Кроме того, если WinRAR при распаковке не находит следующего тома, но обнаруживает необходимое число файлов .rev, то он воссоздаёт недостающие тома автоматически.

Чтобы создать тома для восстановления, вы можете воспользоваться соответствующим параметром в диалоге "Имя и параметры архива" на вкладке "Дополнительно" или аналогичным параметром в диалоге, вызываемом командой защиты архива от повреждений. В режиме командной строки тома для восстановления создаются с помощью команды RV или ключа -rv.

Исходные копии повреждённых томов перед реконструкцией переименовываются в *.bad. Например, volname.part03.rar будет переименован в volname.part03.rar.bad.
Основная информация выделена. Как это работает?

El Scorpio 05-06-2012 06:03 1928276

Как я понимаю, используется избыточная информация.
Что-то вроде контроля чётности, осуществлённого по нескольким разным алгоритмам.

PhilB 05-06-2012 22:27 1928857

Цитата:

Цитата El Scorpio
Как я понимаю, используется избыточная информация. »

Согласен. Правда, скорее всего там алгоритм более сложный. WinRar имеет закрытые исходники, так что увы... узнать наверняка это не удастся. Одним из базовых методов, поясняющих идею является, например, Код Хэмминга.

vadblm 05-06-2012 22:44 1928875

Похоже используются алгоритмы, близкие к используемым в RAID 2 (тот же код Хемминга) или RAID 3, с отдельными носителями для контрольных сумм, в роли которых выступают файлы .rev

XPEHOMETP 06-06-2012 12:29 1929300

Вы посмотрите на файлообменниках, где выкладывают разные фильмы и прочее. А еще лучше - на сайтах (форумах), раздающих некий контент через такие файлообменники. Так сказать, типичный вариант: используются весьма многотомные архивы, с информацией для восстановления. WinRar там просто неизбежный стандарт, другие архиваторы не катят. И дальше, некие личные наблюдения по этому всему. Когда народ хочет обеспечить восстановление недокачанных архивов (или их частей), он в 100% случаев закладывает некую информацию для восстановления в каждую часть архива. Я не знаю, как это работает (ибо, как уже сказано, формат WinRar пропиетарный и закрытый). Я не знаю, что означают 5% или 10% информации, добавленной для восстановления. Иногда у меня возникали мысли, что если к 100 МБ архиву приписать 5% мусора, и вместо результата в 105 МБ Вы по ошибке сервера скачали 102 МБ, то все разархивируется тик в тик. Недокачанный мусор не будет важен. Возможно, все построено именно на этом. Я не знаю деталей и ничего не утверждаю со 100% достоверностью, ибо формат закрыт. И мои предположения останутся только предположениями.

По поводу томов для восстановления. Опять же, посмотрите на соответствующих обменниках/форумах. Абсолютно никто этой фишкой не пользуется. Я, по крайней мере, никогда не встречал. Типа, ведь, если звезды зажигают - значит - это кому-нибудь нужно? А если не зажигают, значит, это никому не нужно? Короче, тома для восстановления в WinRar - вещь в себе, реально на практике которую мало кто тестировал. Судя по упомянутым форумам. Создатель WinRar утверждает, что это работает, и я склонен ему верить. Но я сам никогда не рискну, выкладывая что-то на обменнике, создавать эти тома. Ибо есть как бы традиция, и накатанный на практике вариант: добавлять инфу для восстановления к каждому тому архива. Вариант, ставший уже стандартом.

Я не буду утверждать, что эта фишка не работает. Просто на практике я не имею ни малейшего намерения ею воспользоваться. Может, я ретроград, и слишком привык к накатанной схеме.

rsod 06-06-2012 18:59 1929575

XPEHOMETP, к чему ваш пост?
Цитата:

Цитата XPEHOMETP
Просто на практике я не имею ни малейшего намерения ею воспользоваться. »

например, делаем бэкап - архивируем файлы и пишем их на диски. А тома для восстановления тут очевидно зачем нужны - на случай, если какая-то часть диска повредится и мы не сможем прочитать том, то мы его берём и заменяем томом для восстановления.

El Scorpio 07-06-2012 02:21 1929778

Цитата:

Цитата XPEHOMETP
Я не знаю, что означают 5% или 10% информации, добавленной для восстановления. »

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

Цитата:

Цитата XPEHOMETP
Иногда у меня возникали мысли, что если к 100 МБ архиву приписать 5% мусора, и вместо результата в 105 МБ Вы по ошибке сервера скачали 102 МБ, то все разархивируется тик в тик. Недокачанный мусор не будет важен. »

Неправильные мысли.
Функции восстановления повреждённого архива к работе файлопомоек никакого отношения не имеют

tolik89u 20-09-2012 11:00 1991921

Цитата:

Цитата rsod
Как это работает? »

Здесь: http://www.kpnemo.ws/appz/2010/02/18...sstanovleniya/ - в комментариях один пользователь пишет, что работа основана на кодах Рида-Соломона. Он также приводит ссылку на программу, работающую на том же принципе, но не архивирующую информацию, а только восстанавливающую её прямо из исходных файлов и файлов восстановления.


Время: 21:46.

Время: 21:46.
© OSzone.net 2001-