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

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

次のコマンドを実行します。

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

次に、そのファイルを信頼できない複数のメディアにコピーし、次を使用して解凍しました。

tar -xzf myArchive.tar.gz

実際、私はタールボールを圧縮しました。これはどのようにして解凍されたコンテンツの整合性を保証しますか、または少なくともCRCを保証しますか?

答え1

tar後で比較するためにチェックサム自体を記録しません。gzipを保存すると、tarその機能を使用できます。

tarを使用してくださいcompress-Zアーカイブを作成するときにこのフラグを使用すると、そのtarアーカイブを読み書きするときにプログラムが使用されます。マンページcompressから:gzip

基準圧縮フォーマット設計では一貫性チェックは許可されません。

ただし、このパラメータを使用できます-z。次に、tar読み書きする方法で保管しますgzip。そしてgzipcrcチェックサムを書いてください。チェックサムを表示するには、次のコマンドを使用します。

$ 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をチェックします。

答え2

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

もちろんチェックサムではgzipを使うことができますが、言うアーカイブが破損していると判断された場合、アーカイブは実際にその中のデータを回復するのに役立つ何もしません。これは、Webからダウンロードしたばかりのアーカイブが実際に正しくダウンロードされたことを確認するなどの作業に役立ちます。

信頼できないメディアを介してアーカイブを保存または転送するのが本当に心配な場合は、次のものを使用することをお勧めします。基準これは実際には以下を提供します。校正エラー検出以外。もちろん、この形式の欠点は、エラーの修正に必要な冗長性が原因で必然的にファイルサイズがわずかに増加することです。

答え3

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=posixpaxtarリーダーを置き換えるこのコマンドpax -r < a.tarも、アーカイブの変更を認識しません。

答え4

PKZipソフトウェアパッケージ(win / dos)には、破損したアーカイブからファイルを回復することができるPKZipFixというプログラムが付属しています。私は以前このユーティリティを使用したことがあり、解凍できなかった適切に破損したアーカイブからファイルを回復できました。

関連情報