Защита архивов от повреждений


Формат архивов RAR поддерживает специальный тип избыточной информации, называемой информацией для восстановления. Если в архиве содержится эта информация, то его можно восстановить даже в случае физического повреждения данных (например, из-за сбоя гибкого диска) или их потерь вследствие любых других причин. Архивы формата ZIP не могут содержать информацию для восстановления.

Чтобы добавить информацию для восстановления из командной строки, можно воспользоваться ключом -RR[N] вместе с любой командой, или командой RR[N] для защиты уже существующего архива. Например:

WinRAR a -rr newarc *.txt

WinRAR d -rr4 newarc dummy.txt

WinRAR rr oldarc

Чтобы добавить информацию для восстановления, в режиме оболочки WinRAR вы можете включить параметр "Добавить информацию для восстановления" в диалоге ввода имени архива и его параметров. Ещё один способ — включить соответствующий параметр в профиле архивации по умолчанию. В этом случае информация для восстановления будет добавляться в архив после любого изменения архива.

Информация для восстановления может содержать до 524 288 секторов для восстановления. Если повреждённые данные составляют непрерывный участок, то с помощью каждого сектора для восстановления можно восстановить 512 байт повреждённой информации. Это значение может снизиться в случае многократного повреждения.

Количество секторов допускается задавать явно командой RR[ N] или ключом -RR[N] (= 1, 2 .. 524288). Если этот параметр не указан, то размер выбирается автоматически в зависимости от объёма файла и составляет около 1% от общего объёма архива, что обычно позволяет восстановить последовательно повреждённые данные длиной до 0,6% от общего объёма архива.

Размер информации для восстановления можно также указывать в процентах относительно размера архива. В режиме командной строки для этого просто добавьте знак процента ("%") после числового параметра. Например:

WinRAR rr3% arcname

В режиме оболочки эти параметры можно установить с помощью команды "Защитить архив" или указав размер информации для восстановления на вкладке "Дополнительно" диалога "Имя и параметры архива".

Информация для восстановления увеличивает размер архива. Примерный размер информации для восстановления можно определить по формуле:

<размер архива>/256 + <количество секторов восстановления>*512 байт

Для восстановления повреждённого архива, защищённого с помощью информации для восстановления, в оболочке WinRAR служит команда "Восстановить". В командной строке используется команда R . Восстановленный архив получает имя fixed.arcname.rar, где 'arcname' - имя исходного (повреждённого) архива. Если повреждённый архив не защищён информацией для восстановления или если его невозможно полностью восстановить из-за крупного повреждения, то происходит вторая стадия процесса восстановления, в ходе которой реконструируется только структура архива. Файлы с неверной контрольной суммой (CRC) после этой операции восстановить не удастся, однако становится возможным восстановить неповреждённые файлы, которые ранее были недоступны из-за нарушения структуры архива. Этот метод работает только с обычными, но не с непрерывными архивами. По окончании второго этапа реконструированному архиву присваивается имя rebuilt.arcname.rar, где 'arcname' - имя исходного архива.