Ich habe mich in letzter Zeit viel mit den Winrar Wiederherstellungsdaten und Multipar beschäftigt.
In Multipar (par2) kann jede Kleinigkeit eingestellt werden wie Blockgröße und Anzahl der Blöcke. Eine Einstellung die es in Winrar nicht gibt und zu der ich auch ansonsten Online keine Informationen gefunden habe. Das hat mich neugierig gemacht und ich habe mich selbst daran gemacht RAR Dateien mit Widerherstellungsdaten zu versehen um diese anschließend zu beschädigen, zu reparieren und bei der Reperatur die Daten wie Blockgröße und Anzahl der Blöcke aus WinRAR abzulesen. Viele viele Archive später war es mir möglich die Formeln, wie genau Blockgröße und Anzahl der Blöcke in Winrar berechnet werden weitestgehen abzuleiten.
Da es mich einige Zeit gekostet hat, fände ich es etwas schade meine Erkenntnisse nur für mich zu behalten und möchte sie hier mit euch teilen.
Aber vorab für alle die nicht wissen wie Widerherstellungsdaten funktionieren eine kleine Erklärung. Wenn eine Datei beschädigt wird kann diese mit Widerherstellungsdaten repariert werden. Dabei wird die Datei in gleich große Blöcke aufgeteilt. Nehmen wir z.B. eine 100MB Datei, könnten wir diese in 100 * 1MB Blöcke aufteilen. Wenn es jetzt zu einer Beschädigung in einem Block kommt, können wir diesen mit Widerherstellungsdaten reparieren, sofern wir vor der Beschädigung welche angelegt hatten. Wenn wir für die Datei 5% Wiederherstellungsdaten angelegt hatten, entspräche das 5 x 1MB die repariert werden könnten unabhängig davon wo die Fehler in der Datei aufgetreten sind.
Winrar nutzt für das Erstellen der Wiederherstellungsdaten 4 verschiedene Formeln, je nach größe des Archivs.
Unter ca. 10KB
Die Formel hierfür konnte ich leider nicht rausfinden.
Ab ca. 10KB bis 200KB (204800Bytes)
Archivgröße / Blockgröße 1024 Byte = Anzahl Blöcke
Winrar kann die Menge an Bytes auch geringfügig nach unten anpassen. Vermutlich damit die Gleichung besser aufgeht.
Bis 200KB arbeitet Winrar mit Blockgrößen von ca. 1024 Bytes. Angepasst wird in erster Linie die Anzahl der Blöcke. Dieses System wird beibehalten bis 200 Blöcke (entspricht 200KB) erreicht wurden.
Ab 200KB bis 12,5MB (13107200Bytes)
Archivgröße / 200 Blöcke = Blockgröße
Für Archive ab 200KB wird die Anzahl der Blöcke erstmal nicht mehr verändert. Diese bleiben bis zu einer Archivgröße von 12,5MB unverändert bei 200 Stück. Stattdessen wird die Blockgröße angepasst bis diese 64KB (65536Bytes) erreicht. 200 Blöcke * 64 KB entspicht 12,5MB.
Über 12,5MB
Archivgröße / Blockgröße 64KB = Anzahl Blöcke
Wir sind wieder bei der gleichen Formel wie bei "bis 200KB", nur dieses mal mit 64KB großen Blöcken. Die 64KB sind fix und werden sich auch nicht mehr ändern, unabhängig davon wie groß das Archiv ist. Lediglich die Anzahl der Blöcke erhöht sich je größer das Archiv ist.
Meine größtes Archiv hatte 51,6GB. Dies entspricht 821600 Blöcken je 64KB.
Weiteres
Par2 ist auf max. 32768 Blöcke beschränkt. Ein Limit das für die RAR Wiederherstellungsdaten offensichtlich nicht gilt.
Getestet mit WinRAR 6.11 64Bit. Format RAR5. 1KB einspricht 1024Bytes (nicht 1000Bytes). Angegebene Archivgröße immer ohne größe der Widerherstellungsdaten.
Englischer Blogbeitrag über RAR Wiederherstellungsdaten(nicht von mir): https://www.liamfoot.com/analysing-the-effectiveness-of-winrar-s-rar5-recovery-records
In Multipar (par2) kann jede Kleinigkeit eingestellt werden wie Blockgröße und Anzahl der Blöcke. Eine Einstellung die es in Winrar nicht gibt und zu der ich auch ansonsten Online keine Informationen gefunden habe. Das hat mich neugierig gemacht und ich habe mich selbst daran gemacht RAR Dateien mit Widerherstellungsdaten zu versehen um diese anschließend zu beschädigen, zu reparieren und bei der Reperatur die Daten wie Blockgröße und Anzahl der Blöcke aus WinRAR abzulesen. Viele viele Archive später war es mir möglich die Formeln, wie genau Blockgröße und Anzahl der Blöcke in Winrar berechnet werden weitestgehen abzuleiten.
Da es mich einige Zeit gekostet hat, fände ich es etwas schade meine Erkenntnisse nur für mich zu behalten und möchte sie hier mit euch teilen.
Aber vorab für alle die nicht wissen wie Widerherstellungsdaten funktionieren eine kleine Erklärung. Wenn eine Datei beschädigt wird kann diese mit Widerherstellungsdaten repariert werden. Dabei wird die Datei in gleich große Blöcke aufgeteilt. Nehmen wir z.B. eine 100MB Datei, könnten wir diese in 100 * 1MB Blöcke aufteilen. Wenn es jetzt zu einer Beschädigung in einem Block kommt, können wir diesen mit Widerherstellungsdaten reparieren, sofern wir vor der Beschädigung welche angelegt hatten. Wenn wir für die Datei 5% Wiederherstellungsdaten angelegt hatten, entspräche das 5 x 1MB die repariert werden könnten unabhängig davon wo die Fehler in der Datei aufgetreten sind.
Winrar nutzt für das Erstellen der Wiederherstellungsdaten 4 verschiedene Formeln, je nach größe des Archivs.
Unter ca. 10KB
Die Formel hierfür konnte ich leider nicht rausfinden.
Ab ca. 10KB bis 200KB (204800Bytes)
Archivgröße / Blockgröße 1024 Byte = Anzahl Blöcke
Winrar kann die Menge an Bytes auch geringfügig nach unten anpassen. Vermutlich damit die Gleichung besser aufgeht.
Bis 200KB arbeitet Winrar mit Blockgrößen von ca. 1024 Bytes. Angepasst wird in erster Linie die Anzahl der Blöcke. Dieses System wird beibehalten bis 200 Blöcke (entspricht 200KB) erreicht wurden.
Ab 200KB bis 12,5MB (13107200Bytes)
Archivgröße / 200 Blöcke = Blockgröße
Für Archive ab 200KB wird die Anzahl der Blöcke erstmal nicht mehr verändert. Diese bleiben bis zu einer Archivgröße von 12,5MB unverändert bei 200 Stück. Stattdessen wird die Blockgröße angepasst bis diese 64KB (65536Bytes) erreicht. 200 Blöcke * 64 KB entspicht 12,5MB.
Über 12,5MB
Archivgröße / Blockgröße 64KB = Anzahl Blöcke
Wir sind wieder bei der gleichen Formel wie bei "bis 200KB", nur dieses mal mit 64KB großen Blöcken. Die 64KB sind fix und werden sich auch nicht mehr ändern, unabhängig davon wie groß das Archiv ist. Lediglich die Anzahl der Blöcke erhöht sich je größer das Archiv ist.
Meine größtes Archiv hatte 51,6GB. Dies entspricht 821600 Blöcken je 64KB.
Weiteres
Par2 ist auf max. 32768 Blöcke beschränkt. Ein Limit das für die RAR Wiederherstellungsdaten offensichtlich nicht gilt.
Getestet mit WinRAR 6.11 64Bit. Format RAR5. 1KB einspricht 1024Bytes (nicht 1000Bytes). Angegebene Archivgröße immer ohne größe der Widerherstellungsdaten.
Englischer Blogbeitrag über RAR Wiederherstellungsdaten(nicht von mir): https://www.liamfoot.com/analysing-the-effectiveness-of-winrar-s-rar5-recovery-records
Zuletzt bearbeitet: