次のコマンドを実行します。
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
。そして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をチェックします。
答え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=posix
。pax
tarリーダーを置き換えるこのコマンドpax -r < a.tar
も、アーカイブの変更を認識しません。
答え4
PKZipソフトウェアパッケージ(win / dos)には、破損したアーカイブからファイルを回復することができるPKZipFixというプログラムが付属しています。私は以前このユーティリティを使用したことがあり、解凍できなかった適切に破損したアーカイブからファイルを回復できました。