Як можливо, що 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.