Como recuperar um arquivo “tar.gz” corrompido

8

De repente, precisei recuperar um arquivo tar.gz antigo, mas assim que eu o executei:

tar -zxvf filename.tar.gz

Eu entendo isso:

gzip: stdin: invalid compressed data--format violated  
tar: Child returned status 1  
tar: Error is not recoverable: exiting now
    
por arrrrgv 27.07.2011 / 05:47

6 respostas

10

O que você deve tentar é o seguinte:

  1. Use o comando file no arquivo para ver se ele é reconhecido como gzip -ped data.
  2. Execute strace gunzip no arquivo. Isso imprimirá os últimos bytes lidos no arquivo, o que pode ajudá-lo a identificar o ponto no arquivo onde ocorre a corrupção.
  3. Execute uma compilação de depuração de gunzip em gdb . Tente corrigir a seção corrompida (você tem que ter muita sorte em poder fazer isso) e veja se ela pode continuar até o final do arquivo.

Dependendo da natureza da corrupção, você pode ou não recuperar seus dados.

    
por 27.07.2011 / 08:03
1

Algumas informações sobre como funciona a recuperação podem ser encontradas em Recuperando um arquivo .gz danificado

Há também uma ferramenta que ajuda você a fazer isso: gzip Recovery Toolkit, também conhecido como gzrecover

    
por 27.08.2014 / 13:44
1

A recuperação total não é possível. Formatos como .zip fornecem melhores opções de proteção e recuperação, mas não estão cheias.

.tar.gz agrupa todos os arquivos e aplica uma compactação. .zip reinicia a compactação para cada arquivo. Portanto, no arquivo .zip, um dano causado ao bloco compactado afeta apenas o arquivo ao qual esse bloco pertence. Em .tar.gz, o dano afetará todos os arquivos subseqüentes até que a compactação seja de alguma forma reiniciada.

    
por 27.01.2015 / 13:55
0

Execute zcat bad.tar.gz > some.tar e extraia isso. Ultrapassar a parte corrompida do arquivo será complicado. A página man fornece indicações para o formato, mas eu procuraria outras opções no Google.

Tem certeza de que isso é compactado com o gzip? Pode estar reclamando porque não entende o formato ...

    
por 23.01.2013 / 17:23
0

Todos os registros aplicam-se apenas à extração de informações desde o início do arquivo até o ponto em que o erro ocorreu ou quando o arquivo é cortado.

Infelizmente, nenhuma das receitas descreve como recuperar parte do arquivo / fluxo após a área de corrupção. Alguém tem essa receita?

    
por 27.11.2015 / 14:45
-1

use este: link

gzrecover foo.tar.gz
cpio -F foo.tar.recovered -i -v
    
por 04.07.2018 / 13:05