¿Cómo puedo recuperar archivos de un dañado.alquitrán.gz archivo?


Tengo un gran número de archivos en a .alquitrán.gz archive. Comprobando el tipo de archivo con el comando

file SMS.tar.gz

Da la respuesta

gzip compressed data - deflate method , max compression

Cuando intento extraer el archivo con gunzip, después de un retraso recibo el mensaje

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

¿Hay alguna manera de recuperar incluso parte del archivo?

Author: Tom Melluish, 2008-10-14

3 answers

¿Está seguro de que es un archivo gzip? Primero ejecutaría ' file SMS.alquitrán.gz ' para validar eso.

Entonces leería la página The gzip Recovery Toolkit.

 15
Author: David S.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-26 13:21:59

La recuperación es posible, pero depende de lo que causó la corrupción.

Si el archivo está simplemente truncado, obtener algún resultado parcial no es demasiado difícil; simplemente ejecute

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

Que dará alguna salida a pesar del error al final.

Si el archivo comprimido tiene grandes bloques faltantes, es básicamente inútil después del bloque malo.

Si el archivo comprimido se daña sistemáticamente de pequeñas maneras (por ejemplo, la transferencia del archivo binario en modo ASCII, que se rompe retornos de carro y nuevas líneas en todo el archivo), es posible recuperar, pero requiere un poco de programación personalizada, realmente solo vale la pena si no tiene absolutamente ningún otro recurso (sin copias de seguridad) y los datos valen mucho esfuerzo. (Lo he hecho con éxito. He mencionado este escenario en una pregunta anterior.

Las respuestas para .los archivos zip difieren un poco, ya que los archivos zip tienen varios miembros comprimidos por separado, por lo que hay más esperanza (aunque la mayoría las herramientas comerciales son bastante falsas, eliminan las advertencias parcheando CRCS, no recuperando buenos datos). Pero tu pregunta era sobre a .alquitrán.archivo gz, que es un archivo con un miembro grande.

 30
Author: Liudvikas Bukys,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:18:24

Aquí hay un posible escenario que encontramos. Teníamos un alquitrán.archivo gz que no se descomprimía, tratando de descomprimir dio el error:

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

Me di cuenta de que el archivo puede haber sido cargado originalmente a través de una conexión ftp no binaria (no lo sabemos con certeza).

La solución era relativamente simple usando la utilidad unix dos2unix

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

Funcionó! Esta es una pequeña posibilidad, y tal vez valga la pena intentarlo - puede ayudar a alguien por ahí.

 3
Author: Anthony Palmer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-20 11:07:51