如何恢复损坏的“tar.gz”文件

arr*_*rgv 13 tar gzip data-recovery corruption

我突然需要恢复一个旧tar.gz文件,但是一旦我执行了:

tar -zxvf filename.tar.gz
Run Code Online (Sandbox Code Playgroud)

我明白了:

gzip: stdin: invalid compressed data--format violated  
tar: Child returned status 1  
tar: Error is not recoverable: exiting now
Run Code Online (Sandbox Code Playgroud)

ale*_*lex 12

您应该尝试以下操作:

  1. file在存档上使用命令查看它是否被识别为gzip-ped 数据。
  2. strace gunzip在文件上运行。这将打印从文件中读取的最后一个字节,这可能有助于您识别文件中发生损坏的点。
  3. 运行gunzipunder的调试版本gdb。尝试更正损坏的部分(您必须非常幸运才能这样做)并查看它是否可以继续到文件的末尾。

根据损坏的性质,您可能会或可能无法恢复您的数据。


ana*_*nik 5

完全恢复是不可能的。.zip 等格式提供更好的保护和恢复选项,但也不完整。

.tar.gz 将所有文件集中在一起,然后应用压缩。.zip为每个文件重新启动压缩。因此,在 .zip 文件中,对压缩块造成的损坏只会影响该块所属的文件。在 .tar.gz 中,损坏将影响所有后续文件,直到以某种方式重新启动压缩。