WinRAR이 하나의 .rev 파일로 모든 볼륨을 복구 할 수 있습니까? 하나 를

방금 .revWinRAR 파일에 대해 배웠습니다. 예를 들어 10 파트 RAR 볼륨 .rev( 예 : 하나의 복구 .rev볼륨)이 있으면 볼륨이 손상된 볼륨 하나 를 “수정”할 수 있습니다 .rar.

이것이 어떻게 가능한지? 하나의 볼륨이 개별적으로 깨진 볼륨의 일부 또는 전부를 수정하기 위해 모든 데이터를 가질 수있는 방법을 이해하지 못합니다.

각 RAR 볼륨이 전체에 고유 한 개별 파일을 저장하는 상상과 같이 볼륨이 “선형으로”분류되지 않고 대신 가능할 수도 있습니다. 그러나 .revRAR 볼륨이 비트와 바이트의 하나의 연속 파일로 볼 때 아마도 복구가 가능하며 아마도 손상된 바이트를 수정하기 위해 CRC의 마법 (아마, “수리 작업”)이있을 수 있습니다.

그러나 나는 9 개의 작업 볼륨을 1 개로 손상시킬 수 는 있지만 볼륨 중 하나를 복구 수있는 복구 볼륨을 갖는 방법을 이해하지 못합니다 . 한 볼륨이 어떻게 “모든”볼륨의 데이터를 보유 할 수 있습니까?



답변

정말 간단한 경우를 보자.

4 개의 볼륨과 복구 볼륨이 있으며 각각 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이 실패했다고 가정하겠습니다.

실패한 볼륨 대신 복구 비트를 사용하여 나머지 볼륨 2, 3 및 4를 XOR하면 다음과 같은 결과가 나타납니다.

1 XOR 0 XOR 1 XOR 1 = 1
^

따라서 이것은 부피 1 1이 방정식의 결과이기 때문에을 포함한다는 것을 알려줍니다 .

볼륨 2가 대신 사망했다고 가정하여 방정식의 값을 복구 비트로 바꿉니다.

1 XOR 1 XOR 1 XOR 1 = 0
      ^

따라서 우리는 부피 2 0가 방정식의 결과이므로를 포함 하고 있음을 알고 있습니다.

3 권 또는 4 권이 실패하면 둘 다이 1방정식에서 생성 됩니다.


따라서 볼륨 중 하나라도 실패하면 복구 볼륨을 사용하여 나머지 볼륨을 기반으로 데이터를 재구성 할 수 있습니다. 이것은 아마도 가장 간단한 형태의 오류 수정일 것입니다. 두 개의 볼륨이 실패하면 아무 것도 복구 할 수 없습니다.


답변

이것이 어떻게 가능한지 이해하는 정말 간단한 방법은 복구 볼륨에 다른 볼륨의 합계가 포함되어 있는지 상상해보십시오. 숫자 목록, 누락 된 숫자 중 하나 및 그 합계를 사용하면 항상 누락 된 숫자를 재구성 할 수 있습니다.

예를 들어,이 두 자리 숫자 (13, 88, 17, 43)를 고려하십시오. 하나의 누락 된 숫자가 있고 모든 숫자의 합계에서 마지막 두 숫자가 81 인 경우 누락 된 숫자를 찾을 수 있습니다. 13 + 88 + 17 + 43 = 161. 81로 끝나는 숫자를 만들기 위해 추가 할 수있는 유일한 두 자리 숫자는 20입니다.

20이 있고 43이 없다고 가정 해 봅시다. 13 + 88 + 17 + 20 = 138. 81로 끝나는 숫자를 만들기 위해 여기에 더할 수있는 두 자리 숫자는 43입니다.

따라서 복구 번호를 사용하면 누락 된 번호를 찾을 수 있습니다.