Dodawanie danych naprawczych w dobie masowej wymiany (zwłaszcza dużych) plików przez Internet, kiedy może dojść do przekłamania i uszkodzenia danych, jest zagadnieniem (przynajmniej dla części internautów) bardzo istotnym.
To że komercyjny
WinRar/Rar oferuje dodawanie danych naprawchych i odzyskiwanie uszkodzonych plików, wiadomo nie od dziś, jednak nie każdy ma ochotę na płatne (własnościowe) i zamkniętożródłowe oprogramowanie w dobie, kiedy służby specjalne typu
CIA/FBI/NSA mogą najprawdopodobniej mieć tylne wejście do programu (i nie pomoże tu nawet fakt, że nowsze serie
WinRar'a/Rar'a podobno mają wbudowany algorytm szyfrowania bazujący na
AES256, ponieważ ewentualny backdoor dla służb specjalnych może korzystać z hasła/wytrycha "generalnego" dodanego do zamkniętego i kodu aplikacji).
Znane otwartoźródłowe programy do archiwizacji/kompresji danych typu
7-zip czy
PeaZip niestety nie oferują opcji danych naprawczych (na szczęście umożliwiają przynajmniej zaszyfrowanie listy plików).
Jak sobie więc radzić?1. Tworzymy archiwum, które chcemy zabezpieczyć (
ZIP, 7z, tar.gz, bz2 itp.), w razie potrzeby szyfrujemy (najlepiej wraz z listą plików:
7-zip wymaga uaktywnienia specjalnej opcji szyfrowania listy plików, a
PeaZip ma ją wbudowaną domyślnie). Oczywiście archiwum może (o ile jest taka chęć/potrzeba) być podzielone na woluminy. Załóżmy, że nadamy naszemu archiwum nazwę
sample.7z.
2. Pobieramy konsolowy program
par2:
https://yadi.sk/d/eiBdUT58dh7CE
3. Instalujemy go.
4. Otwieramy konsolę i (w razie potrzeby) nawigujemy do foldera, w którym mamy nasze archiwum, np. aby przejść do foldera o nazwie "kotek", znajdującego się w
/root, wpisujemy komendę:
cd kotek
5. Teraz tworzymy dane naprawcze:
par2 c sample sample.7z
(to będzie domyślnie z 5% danych naprawczych, bo tyle właśnie
par2 ma ustawione "fabrycznie")
Komu wydaje się to zbyt małym zapasem redundancji, to wydaje komendę:
par2 c -r10 sample sample.7z
(i już będzie miał 10% danych ratunkowych)
Jeżeli archiwum "sample" jest podzielone na podwoluminy składowe, to wymieniamy je w komendzie oddzielając spacjami.
Można sobie jednak znacznie ułatwić sprawę z większą ilością plików/podwoluminów w ten sposób, że nie trzeba będzie ręcznie wklepywać nazw poszczególnych podarchiwów, bo można przecież posłużyć się potęgą
basha, czyli znakiem gwiazdki. Jeżeli w folderze, w którym trzymamy dane (archiwa/podarchiwa składowe) przeznaczone do wytworzenia na ich podstawie danych naprawczych są tylko one same (bez żadnych innych zbędnych plików), to sprawa będzie wyglądała tak:
par2 c -r10 sample *
Dzięki tej gwiazdeczce
par2 będzie tworzył dane naprawcze na podstawie wszystkich możliwych plików znajdujących się w folderze "kotek".
Po pewnym czasie, zależącym od wielkości pliku, do którego "dorabiamy" dane naprawcze, aplikacja zakończy pracę i w folderze /root/kotek pojawią się nowe pliki, np.
sample.par2, sample.vol000+01.par2, sample.vol001+02.par2 itd. (u siebie dodawałem dane naprawcze do archiwum
*.7z o rozmiarze 117 MB, więc program utworzył 9 plików naprawczych --> główny deskryptor danych naprawczych o nazwie
sample.par2 + osiem podwoluminów, zawierających w swojej nazwie sekwencję
vol00..).
6. No to teraz (o ile chcemy) możemy zweryfikować nasze dane naprawcze:
par2 v sample.par2
Powyższego polecenia możemy także używać w sytuacji, kiedy pobierzemy docelowe pliki z
Internetu wraz z danymi naprawczymi w formacie
*.par2 i będziemy chcieli przetestować, czy pobrane przez nas dane nie pobrały się z błędami i upewnić się, czy stan plików oraz ilość dostępnych danych naprawczych są wystarczające do przeprowadzenia ich ratowania.
7. Gotowe.
Odzyskiwanie uszkodzonych archiwów1. Wszystkie archiwa oraz pliki z danymi naprawczymi, czyli te stworzone przez program
par2, muszą być wspólnie w jednym i tym samym folderze.
2. Wydajemy komendę odzyskującą dane:
par2 r sample.par2
Dane powinny zostać odzyskane (10% to danych naprawczych, to naprawdę sporo; nawet renomowany
WinRar/Rar domyślnie dodaje ich zaledwie 1%, zaleca się ok. 5%, a maksymalnie można w nim dodać 10%). Program
par2 umożliwia ustawienie nawet większej redundancji niż 10% (choć statystycznie nie powinno to być potrzebne).
3. Dane zostały odzyskane. Przy okazji
par2 stworzył kopię popsutego archiwum i oznaczył ją dodając do rozszerzenia nazwy pliku cyfrę "1". Kopię tę będzie można usunąć, bo przecież proces naprawczy się udał (o czym program nas poinformował).
Całą powyższą procedurę sprawdziłem u siebie --> łącznie z odzyskiwaniem (celowo popsułem archiwum
*.7z nadpisując je kilkunastoma znakami w binarnym edytorze heksadecymalnym
gHex).
Zabezpiecznie i naprawianie danych w programie QuickPar (w Wine)Program
QuickPar to windowsowy i bezpłatny graficzny odpowiednik naszego opisanego powyżej konsolowego linuksowego
par2. Oba programy tworzą dane naprawcze w podwoluminach *.par2 i są ze sobą kompatybilne w obie strony (co sprawdziłem praktycznie).
Program pobieramy stąd:
http://www.quickpar.org.uk/Download.htm
mirror: https://yadi.sk/d/1xUZmq3bdh7KP
... i instalujemy pod
Wine.
Dokładna polskojęzyczna instrukcja obsługi programu (wraz ze screenshotami) znajduje się na stronie:
http://przepraszamzacrossposta.blox.pl/2010/03/QuickPAR-Przepis-na-parowki-czyli-dane-naprawcze.html
mój mirror PDF:
https://yadi.sk/i/Ni_yBGCedh7RV
Inne linuksowe graficzne programy tworzące dane naprawcze w formacie *.par2Niestety, nie udało mi się ich uruchomić na moim szczeniaku, ale jak najbardziej istnieją:
pypar2
gpar2 Może ktoś się odważy spróbować powalczyć. Może
Slacko, którego akurat nie używam, jest pod tym względem lepszy.
Życzę miłego bezpłatnego niekomercyjnego zabezpieczania/naprawiania dowolnych plików (bo
par2, QuickPar, pypar2 czy
gpar2 zabezpieczają przecież nie tylko archiwa skompresowane, ale i dowolne "zwykłe" pliki, np. filmy, obrazy ISO, itd.).
==========================
niniejszy post/wątek jako plik PDF: https://yadi.sk/i/WzsKSUqY3Ff8YD