破損した.tar.gzアーカイブからファイルを回復するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/201392

  •  03-07-2019
  •  | 
  •  

質問

.tar.gzアーカイブに多数のファイルがあります。コマンドを使用してファイルの種類を確認する

file SMS.tar.gz

応答を与える

gzip compressed data - deflate method , max compression

gunzipでアーカイブを抽出しようとすると、しばらくしてメッセージが表示されます

gunzip: SMS.tar.gz: unexpected end of file

アーカイブの一部でも復元する方法はありますか?

役に立ちましたか?

解決

gzipファイルであることを確認しますか?最初に「file SMS.tar.gz」を実行して、それを検証します。

次に、 gzip Recovery Toolkit ページを読みます。

他のヒント

リカバリは可能ですが、破損の原因によって異なります。

ファイルが切り捨てられている場合、部分的な結果を取得するのはそれほど難しくありません。ただ実行する

gunzip < SMS.tar.gz > SMS.tar.partial

これは、最後のエラーにもかかわらず出力を提供します。

圧縮ファイルに大きな欠落ブロックがある場合、基本的に不良ブロックの後には絶望的です。

圧縮ファイルが小さな方法で体系的に破損している場合(たとえば、ファイル全体でキャリッジリターンと改行を壊すASCIIモードでバイナリファイルを転送する場合)、回復することは可能ですが、かなりのカスタムプログラミングが必要です。他に頼ることができない(バックアップがない)場合にのみ価値があり、データに多大な労力を費やす価値があります。 (成功しました。)前の質問でこのシナリオに言及しました。

zipアーカイブには個別に圧縮された複数のメンバーが含まれているため、.zipファイルの答えは多少異なります。したがって、より多くの希望があります(ほとんどの商用ツールはかなり偽物ですが、良いデータを回復するのではなく、CRCにパッチを当てることで警告を排除します)。しかし、あなたの質問は.tar.gzファイルに関するものでした。これは1つの大きなメンバーを含むアーカイブです。

これは、発生した可能性のあるシナリオの1つです。解凍しないtar.gzファイルがあり、解凍しようとするとエラーが発生しました:

gzip -d A.tar.gz
gzip: A.tar.gz: invalid compressed data--format violated

ファイルは元々非バイナリftp接続を介して アップロードされる可能性があることがわかりました(確かではありません)。

ソリューションは、unix dos2unix ユーティリティを使用して比較的簡単でした

dos2unix A.tar.gz
dos2unix: converting file A.tar.gz to UNIX format ...
tar -xvf A.tar
file1.txt
file2.txt 
....etc.

うまくいきました! これは1つのスリムな可能性であり、試してみる価値があるかもしれません-それは誰かを助けるかもしれません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top