Войти

Показать полную графическую версию : Как работают тома для восстановления в WinRar?


rsod
04-06-2012, 22:03
Выдержка из справки:
Тома для восстановления представляют собой особые файлы с расширением .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
Как я понимаю, используется избыточная информация.
Что-то вроде контроля чётности, осуществлённого по нескольким разным алгоритмам.

PhilB
05-06-2012, 22:27
Как я понимаю, используется избыточная информация. »
Согласен. Правда, скорее всего там алгоритм более сложный. WinRar имеет закрытые исходники, так что увы... узнать наверняка это не удастся. Одним из базовых методов, поясняющих идею является, например, Код Хэмминга (http://ru.wikipedia.org/wiki/Код_Хэмминга).

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

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

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

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

rsod
06-06-2012, 18:59
XPEHOMETP, к чему ваш пост?
Просто на практике я не имею ни малейшего намерения ею воспользоваться. »
например, делаем бэкап - архивируем файлы и пишем их на диски. А тома для восстановления тут очевидно зачем нужны - на случай, если какая-то часть диска повредится и мы не сможем прочитать том, то мы его берём и заменяем томом для восстановления.

El Scorpio
07-06-2012, 02:21
Я не знаю, что означают 5% или 10% информации, добавленной для восстановления. »
Опять же избыточная информация (контрольные суммы и т.д.), позволяющая корректно распаковать файл, если в нём при передаче исказилось определённое количество байт. При этом опять же нельзя восстановить архив, если объём искажённой информации больше объёма информации для восстановления

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

tolik89u
20-09-2012, 11:00
Как это работает? »
Здесь: http://www.kpnemo.ws/appz/2010/02/18/WinRAR_i_toma_dlya_vosstanovleniya/ - в комментариях один пользователь пишет, что работа основана на кодах Рида-Соломона (http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B4_%D0%A0%D0%B8%D0%B4%D0%B0_%E2%80%94_%D0%A1%D0%BE%D0%BB%D0%BE%D0%BC%D0%BE%D0%BD%D0% B0). Он также приводит ссылку на программу (http://www.ice-graphics.com/ICEECC/IndexR.html), работающую на том же принципе, но не архивирующую информацию, а только восстанавливающую её прямо из исходных файлов и файлов восстановления.




© OSzone.net 2001-2012