gzipは.tarに整合性/ crcチェックを追加しますか?


12

私はコマンドを実行します:

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

その後、多くの信頼できないメディアにファイルをコピーし、後で以下を使用して解凍します。

tar -xzf myArchive.tar.gz

tar-ballを圧縮したという事実は、それが何らかの形で完全性を保証するのでしょうか、それとも少なくとも解凍されたコンテンツのCRCでしょうか?

回答:


15

tarそれ自体は、後で比較するためにチェックサムを書き留めません。アーカイブを作成すればgziptarその機能を使用できます。

tarを使用しcompressます。-Zアーカイブの作成中にフラグを使用すると、アーカイブの読み取りまたは書き込み時tarcompressプログラムが使用されます。gzipマンページから:

標準の圧縮形式は、整合性チェックを許可するようには設計されていません。

ただし、-zパラメーターは使用できます。次にtar、を介してアーカイブを読み書きしますgzip。そしてgzip、CRCチェックサムを書き込みます。そのチェックサムを表示するには、次のコマンドを使用します。

$ 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

gzipマンページから:

最初の2つの形式(gzipまたはzipの意味)を使用する場合、gunzipは32ビットCRCをチェックします。


5

はい、gzipファイル形式にはCRC-32チェックサムが含まれており、これを使用してアーカイブが破損しているかどうかを検出できます。

もちろん、チェックサムによりgzip はアーカイブが破損していること通知しますが、実際にはアーカイブ内のデータを回復するために何もしません。したがって、Webからダウンロードしたばかりのアーカイブが実際に正しくダウンロードされたことを確認するような場合に役立ちます。

信頼性の低いメディアでアーカイブを保存または送信することが実際に心配な場合は、エラー検出に加えて実際にエラー修正を提供するparなどのアーカイブ形式の使用を検討することをお勧めします。もちろん、このような形式の欠点は、エラー修正に必要な冗長性が必然的にファイルサイズを多少増やすことです。


4

tar整合性チェックはありません。例:

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

tttttttttttttttttt

a.tarアーカイブのコンテンツが変更されたため、ファイルのbコンテンツは完全に異なっていますが、tarはこれに気付きませんでした。これは、両方のtar形式のtar-1.28(最新)を含むすべてのtarに当てはまります--format=gnu --format=posixpaxコマンド(代替タールリーダー)はpax -r < a.tar、アーカイブの変化に気付くことはありません。


2
OPはtar(少なくともオプションなしで-z)整合性チェックを行わないことを認識している(または少なくとも疑っている)ようです。また、受け入れられた答えはこれを述べています。問題はgzip、(または-zオプションの使用により)整合性チェックが追加されるかどうかです。
G-Manは「Reinstate Monica」と言います

G-Manを修正してください。gzip部分も含まれていて、コンテンツが変更されたことをgzipが検出することを示している場合、これは大丈夫です。
アクセルウィルガート

2

tarが解凍時にエラーを検出すると、メッセージを出力し、ゼロ以外の終了値で終了します。この動作は、tarファイルの作成後に使用される圧縮アルゴリズムとは無関係です。

ファイルが信頼できないリンクを介して宛先に正常に送信されたことを確認する場合は、送信前にファイルのmd5合計を作成し、受信後にmd5合計を確認します。


解凍されたコンテンツの整合性のみに関心がある場合。tarのmd5は、unpackinng中にtarをチェックするのに比べて、余分なものを追加しませんか?
アクセルウィルガート14年

tarアーカイブ内のコンテンツの整合性は、tarそれ自体で処理されます。必要に応じて追加のレイヤーを追加できます。tarファイルの整合性が検証された場合、tarアーカイブ内のコンテンツも問題ありません。しかし、そもそもデータを転送するために使用されるプロトコルがこれらすべてを処理しなければなりません。

-1

PKZipパッケージ(win / dos)には、破損したアーカイブからファイルを回復できるPKZipFixと呼ばれるプログラムが付属しています。過去にこのユーティリティを使用したことがありますが、解凍しない中程度に破損したアーカイブからファイルを回復できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.