Czy gzip dodaje sprawdzanie integralności / crc do pliku .tar?


12

Uruchamiam polecenia:

tar -cf myArchive.tar myDirectory/
gzip myArchive.tar

następnie kopiuję plik na wiele niewiarygodnych nośników, a następnie rozpakowuję go, używając:

tar -xzf myArchive.tar.gz

Fakt, że skompresowałem tar-ball, czy w jakikolwiek sposób zagwarantuje to integralność, a przynajmniej CRC rozpakowanej zawartości?

Odpowiedzi:


15

tarsam nie zapisuje sumy kontrolnej do późniejszego porównania. Jeśli archiwizacji można mieć tę funkcjonalność.gziptar

tarwykorzystuje compress. Jeśli użyjesz -Zflagi podczas tworzenia archiwum tar, użyje compressprogramu podczas odczytu lub zapisu archiwum. Z strony gzippodręcznika:

Standardowy format kompresji nie został zaprojektowany w celu umożliwienia sprawdzania spójności.

Możesz jednak użyć -zparametru. Następnie tarczyta i zapisuje archiwum gzip. I gzipzapisuje sumę kontrolną CRC. Aby wyświetlić tę sumę kontrolną, użyj tego polecenia:

$ gzip -lv archive.tar.gz
method  crc     date  time           compressed        uncompressed  ratio uncompressed_name
defla 3f641c33 Sep 25 14:01               24270              122880  80.3% archive.tar

Z strony gzippodręcznika:

Podczas używania dwóch pierwszych formatów (chodzi o gzip lub zip ), gunzip sprawdza 32-bitowy CRC.


5

Tak, format pliku gzip zawiera sumę kontrolną CRC-32, której można użyć do wykrycia uszkodzenia archiwum.

Oczywiście, chociaż suma kontrolna pozwala gzipowi powiedzieć , że archiwum jest uszkodzone, w rzeczywistości nie robi nic, aby pomóc Ci odzyskać dane w archiwum. Dlatego przydaje się przede wszystkim do sprawdzania, czy archiwum, które właśnie pobrałeś z sieci, naprawdę zostało poprawnie pobrane.

Jeśli faktycznie martwisz się przechowywaniem lub przesyłaniem swoich archiwów przez niewiarygodne media, możesz rozważyć użycie formatu archiwum takiego jak par, który oprócz wykrywania błędów zapewnia także korekcję błędów. Oczywiście wadą takich formatów jest to, że nadmiarowość wymagana do korekcji błędów niekoniecznie zwiększa rozmiar pliku.


4

tarnie ma kontroli integralności. Przykład:

$ echo JJJJJJJJJJJJJJJJJJ > b
$ tar cvf a.tar b
$ sed -i s/JJJJJJJJJJJJJJJJJJ/tttttttttttttttttt/g a.tar
$ tar xvf a.tar
$ cat b

tttttttttttttttttt

Zobacz, zawartość a.tararchiwum uległa zmianie, więc plik bma zupełnie inną zawartość, ale tar tego nie zauważył. Dotyczy to każdej tar, w tym tar-1.28 (najnowszej) z obydwoma formatami tar --format=gnu --format=posix. paxKomenda (alternatywny czytnik tar) pax -r < a.tarrównież nie zauważyć zmiany archiwum.


2
PO wydaje się być świadome (lub co najmniej podejrzany), który tar(przynajmniej bez tej -zopcji) nie zrobić sprawdzanie integralności. Również przyjęta odpowiedź stanowi to. Pytanie brzmi: czy gzip(lub użycie -zopcji) dodaje sprawdzanie integralności?
G-Man mówi „Przywróć Monikę”

poprawny G-Man, To może być dobra odpowiedź, jeśli zawiera również część gzip i pokazuje, że gzip wykrywa, że ​​zawartość się zmieniła.
Aksel Willgert

2

Jeśli tar wykryje błędy podczas rozpakowywania, wydrukuje komunikat i zakończy działanie z niezerową wartością wyjścia. To zachowanie jest niezależne od algorytmu kompresji używanego po utworzeniu pliku tar.

Jeśli chcesz sprawdzić, czy plik został pomyślnie wysłany do miejsca docelowego za pomocą niewiarygodnego łącza, utwórz sumę md5 pliku przed wysłaniem i zweryfikuj sumę md5 po odbiorze.


jeśli jestem zainteresowany tylko integralnością rozpakowanej zawartości. md5 na tar nie dodaje nic więcej w porównaniu do tar, który robi tar podczas rozpakowywania?
Aksel Willgert

Dbałość o integralność treści w archiwum tar jest załatwiona tarsama. W razie potrzeby możesz dodać dodatkową warstwę: jeśli integralność pliku tar zostanie zweryfikowana, zawartość wewnątrz archiwum tar również będzie w porządku. Ale wszystko to powinno być załatwione przede wszystkim przez protokół używany do przesyłania danych.
stycznia

-1

Pakiet PKZip (win / dos) zawiera program o nazwie PKZipFix, który może odzyskiwać pliki z uszkodzonych archiwów. Korzystałem z tego narzędzia w przeszłości, może ono odzyskiwać pliki z umiarkowanie uszkodzonych archiwów, które nie uległyby dekompresji.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.