破損した“tar.gz”ファイルを修復する方法

破損した“tar.gz”ファイルを修復する方法

突然古いファイルを復元する必要がありますが、一度tar.gz実行すると次のようになります。

tar -zxvf filename.tar.gz

わかりました:

gzip: stdin: invalid compressed data--format violated  
tar: Child returned status 1  
tar: Error is not recoverable: exiting now

答え1

以下を試してください。

  1. filegzipアーカイブのコマンドを使用して、-pedデータとして認識されていることを確認してください。
  2. strace gunzipファイルを実行します。これにより、ファイルから読み取られた最後のバイトが印刷されるため、ファイルが破損した場所を特定するのに役立ちます。
  3. gunzip以下のデバッグバージョンを実行してくださいgdb。破損したセクションを修正してみてください(これを行うには非常に幸運である必要があります)、ファイルの最後まで続くことを確認してください。

破損の性質によっては、データを回復できない場合があります。

答え2

完全な回復は不可能です。 .zipのようなフォーマットはより良い保護と回復オプションを提供しますが、不完全です。

.tar.gzすべてのファイルを集めて圧縮を適用します。。圧縮各ファイルの圧縮を再開します。したがって、.zipファイルで圧縮ブロックが破損すると、そのブロックが属するファイルにのみ影響します。 .tar.gzでは、破損は圧縮が再開されるまですべての後続のファイルに影響を与えます。

答え3

リカバリの仕組みに関するいくつかの情報は、以下で確認できます。破損した.gzファイルを修復

これを行うのに役立つツールもあります。gzip回復ツールキット(別名gzrecover)

答え4

これを使用してください:https://github.com/arenn/gzrt

gzrecover foo.tar.gz
cpio -F foo.tar.recovered -i -v

関連情報