Как это возможно, что WinRAR может восстановить любой том одним файлом .rev?


31

Я только что узнал о .revфайлах с WinRAR - где , если у вас есть 10 частей объем с RAR, например, плюс один .rev(восстановление) объем - .revобъем будет иметь возможность «исправить» любые один коррумпированные .rarгромкости.

Как это возможно? Я не понимаю, как один том может иметь все данные для исправления любого / всех отдельно разбитых томов.

Я предполагаю, что, возможно, возможно, что тома не будут разбиты «линейно», как я себе представляю, где каждый том RAR содержит отдельные, отдельные файлы целого, упакованные внутри; скорее, возможно, .revисправление возможно, когда тома RAR рассматриваются как один непрерывный файл битов и байтов, так сказать, и что, возможно, существует какое-то колдовство CRC (ах, «ремонтные работы»), задействованное для исправления поврежденных байтов.

Но я просто не понимаю, как вы можете иметь 9 рабочих томов с 1 поврежденным, но иметь том для восстановления, который может восстановить любой из этих томов. Как один том может хранить данные «всех» томов?


3
Коды коррекции стирания. Сравните с en.wikipedia.org/wiki/Parchive
Дэн Д.

Ответы:


55

Давайте возьмем действительно простой случай.

У вас есть четыре тома и том восстановления, каждый из которых содержит 1 бит информации:

         ========================================================
Volumes: = Volume 1 = Volume 2 = Volume 3 = Volume 4 = Recovery =
         =----------=----------=----------=----------=----------=
   Bits: =    1     =    0     =    1     =    1     =     1    =
         ========================================================

Том восстановления будет содержать результат каждого из этих битов XOR d вместе:

1 XOR 0 XOR 1 XOR 1 = 1

Итак, наш том восстановления содержит единственный бит 1.


Теперь, скажем, том 1 не удается.

Если мы XOR оставшихся томов 2, 3 и 4 с битом восстановления вместо сбойного тома, мы получим:

1 XOR 0 XOR 1 XOR 1 = 1
^

Итак, это говорит нам о том, что объем 1 содержится 1, так как он является результатом уравнения.

Давайте представим, что том 2 умер вместо этого, поэтому мы заменим его значение в уравнении битом восстановления:

1 XOR 1 XOR 1 XOR 1 = 0
      ^

Итак, мы знаем, что объем 2 содержится 0, так как он является результатом уравнения.

Если том 3 или 4 потерпит неудачу, они оба произведут 1в этом уравнении.


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


4
Чтобы было ясно, есть схемы, которые позволяют восстанавливаться после нескольких сбоев тома.
Дитрих Эпп

Это работает, только если вы знаете, какое устройство вышло из строя, не так ли?
heinrich5991

1
@ heinrich5991 вы знаете по внутренней CRC громкости
чокнутый урод

21

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

Например, рассмотрим эти две цифры, 13, 88, 17, 43. Если вы знали, что было одно пропущенное число, а последние две цифры суммы всех чисел равны 81, вы можете найти пропущенное число. 13 + 88 + 17 + 43 = 161. Единственное двузначное число, которое вы можете добавить к этому, чтобы число, заканчивающееся на 81, было 20.

Скажем, у вас было 20, а вам не хватает 43. 13 + 88 + 17 + 20 = 138. Единственное двузначное число, которое вы можете добавить к этому, чтобы сделать число, заканчивающееся на 81, - 43.

Таким образом, номер восстановления позволяет найти любой пропущенный номер.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.