Як можливо, що WinRAR може відновити будь-який об'єм одним файлом .rev?


31

Я щойно дізнався про .revфайли з WinRAR - де, якщо у вас є 10-ти частинний RAR-об'єм, наприклад, плюс один .rev(відновлення) об'єм - .revгучність зможе "виправити" будь- який зіпсований .rarтом.

Як це можливо? Я не розумію, як один том може мати всі дані для фіксації будь-яких / всіх окремо розбитих томів.

Я здогадуюсь, що це можливо можливо замість того, щоб обсяги не були розбиті "лінійно", як я собі уявляю, де кожен том RAR містить чіткі, окремі файли всього упакованого всередині; але скоріше, можливо, .revремонт можливий, коли томи RAR розглядаються як один безперервний файл біт і байтів, так би мовити, і що, можливо, є якась чародійність CRC'ish (ах, "ремонтні роботи"), яка потребує виправлення пошкоджених байтів.

Але я просто не розумію, як у вас може бути 9 робочих томів з 1 пошкодженим, але ще є об'єм відновлення, який може відновити будь- який з томів. Як один том може вмістити дані "всіх" томів?


3
Коди виправлення стирання Порівняйте з en.wikipedia.org/wiki/Пархів
Дан Д.

Відповіді:


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.