Comment est-il possible que WinRAR puisse réparer n'importe quel volume avec un fichier .rev?


31

Je viens d' apprendre sur les .revfichiers avec WinRAR - où , si vous avez un volume de RAR 10 parties, par exemple, plus un .rev(récupération) volume - le .revvolume sera en mesure de « réparer » tout un corrompu .rarvolume.

Comment est-ce possible? Je ne comprends pas comment un volume pourrait avoir toutes les données pour réparer tout ou partie des volumes individuellement cassés.

Je suppose que c'est peut-être possible au lieu que les volumes ne soient pas divisés "linéairement", comme j'imagine, où chaque volume RAR contient des fichiers distincts et individuels de l'ensemble emballés à l'intérieur; mais plutôt, peut-être que la .revréparation est possible lorsque les volumes RAR sont considérés comme un fichier continu de bits et d'octets, pour ainsi dire, et qu'il y a peut-être une sorcellerie CRC (ah hem, "réparation") impliquée pour corriger les octets corrompus.

Mais je ne comprends tout simplement pas comment vous pouvez avoir 9 volumes de travail avec 1 endommagé, mais avoir un volume de récupération qui peut réparer l' un des volumes. Comment un volume peut-il contenir des données de "tous" les volumes?


3
Codes de correction d'effacement. Comparer avec en.wikipedia.org/wiki/Parchive
Dan D.

Réponses:


55

Prenons un cas vraiment simple.

Vous disposez de quatre volumes et d'un volume de récupération, chacun contenant 1 bit d'informations:

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

Le volume de récupération contiendrait le résultat de chacun de ces bits XOR d ensemble:

1 XOR 0 XOR 1 XOR 1 = 1

Ainsi, notre volume de récupération contient le bit unique 1.


Maintenant, disons que le volume 1 échoue.

Si nous XOR les volumes 2, 3 et 4 restants avec le bit de récupération à la place du volume défaillant, nous obtenons:

1 XOR 0 XOR 1 XOR 1 = 1
^

Donc, cela nous dit que le volume 1 contenait 1, car il est le résultat de l'équation.

Imaginons plutôt que le volume 2 soit mort, alors nous remplaçons sa valeur dans l'équation par le bit de récupération:

1 XOR 1 XOR 1 XOR 1 = 0
      ^

Nous savons donc que le volume 2 contenait 0, car il est le résultat de l'équation.

Si le volume 3 ou 4 échouait, ils produiraient tous les deux 1dans cette équation.


Ainsi, en cas de défaillance de l'un des volumes, le volume de récupération peut être utilisé pour reconstruire les données en fonction des volumes restants. Il s'agit probablement de la forme de correction d'erreur la plus simple que vous puissiez avoir. Si deux volumes ont échoué, vous ne pouvez rien récupérer.


4
Pour être clair, il existe des schémas qui vous permettent de récupérer après plusieurs pannes de volume.
Dietrich Epp

Cela ne fonctionne que si vous savez quel appareil a échoué, n'est-ce pas?
heinrich5991

1
@ heinrich5991 vous le savez par le CRC interne du volume
ratchet freak

21

Pour un moyen très simple de comprendre comment cela pourrait être, imaginez si le volume de récupération contenait la somme des autres volumes. Avec une liste de nombres, manquant l'un d'eux, et leur somme, vous pouvez toujours reconstruire le nombre manquant.

Par exemple, considérez ces deux chiffres, 13, 88, 17, 43. Si vous saviez qu'il y avait un numéro manquant et que les deux derniers chiffres de la somme de tous les nombres étaient 81, vous pourriez trouver le numéro manquant. 13 + 88 + 17 + 43 = 161. Le seul nombre à deux chiffres que vous pouvez ajouter à cela pour faire un nombre qui se termine par 81 est 20.

Supposons que vous ayez eu le 20 et qu'il vous manquait le 43. 13 + 88 + 17 + 20 = 138. Le seul nombre à deux chiffres que vous pouvez ajouter à cela pour faire un nombre qui se termine par 81 est 43.

Ainsi, le numéro de récupération vous permet de trouver n'importe quel numéro manquant.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.