เป็นไปได้อย่างไรที่ WinRAR สามารถซ่อมแซมโวลุ่มใด ๆ ด้วยไฟล์. rev เดียว?


31

ฉันเพียงแค่เรียนรู้เกี่ยวกับ.revไฟล์ที่มี WinRAR - ซึ่งถ้าคุณมีปริมาณ RAR 10 ส่วนเช่นบวกหนึ่ง.rev(กู้คืน) ปริมาณ - The .revปริมาณจะสามารถที่จะ "แก้ไข" ใด ๆหนึ่งเสียหาย.rarปริมาณ

เป็นไปได้อย่างไร? ฉันไม่เข้าใจว่าไดรฟ์ข้อมูลหนึ่งสามารถมีข้อมูลทั้งหมดเพื่อแก้ไขใด ๆ / ทั้งหมดของไดรฟ์ข้อมูลที่แยกย่อย

ฉันเดาว่าบางทีมันอาจเป็นไปได้แทนวอลลุ่มที่ไม่ถูก "เชิงเส้น" เหมือนที่ฉันจินตนาการที่แต่ละโวลุ่ม RAR เก็บไฟล์แต่ละไฟล์ที่แตกต่างกันของแต่ละไฟล์ แต่อาจ.revเป็นไปได้ที่การซ่อมแซมเมื่อไดรฟ์ข้อมูล RAR ถูกดูเป็นไฟล์ต่อเนื่องหนึ่งบิตของบิตและไบต์ดังนั้นเพื่อพูดและอาจมีเวทมนตร์ของ CRC'ish (อ่าหรับ "งานซ่อม") ที่เกี่ยวข้องเพื่อแก้ไขไบต์ที่เสียหาย

แต่ผมก็ไม่เข้าใจวิธีการที่คุณสามารถมี 9 เล่มที่ 1 การทำงานกับความเสียหายยังมีปริมาณการกู้คืนที่สามารถซ่อมแซมใด ๆหนึ่งในไดรฟ์ หนึ่งเล่มสามารถเก็บข้อมูลของ "ทั้งหมด" ได้อย่างไร


3
รหัสการแก้ไขการลบ เปรียบเทียบกับen.wikipedia.org/wiki/Parchive
Dan D.

คำตอบ:


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
เพื่อให้ชัดเจนมีรูปแบบที่ช่วยให้คุณสามารถกู้คืนจากความล้มเหลวของโวลุ่มหลาย
Dietrich Epp

มันจะทำงานได้ก็ต่อเมื่อคุณรู้ว่าอุปกรณ์ใดล้มเหลวใช่มั้ย
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

ดังนั้นหมายเลขการกู้คืนจะช่วยให้คุณค้นหาหมายเลขที่หายไปหนึ่งรายการ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.