tar.bz2 corrupto.

Horst H. von Brand vonbrand en inf.utfsm.cl
Sab Ene 24 23:55:10 CLST 2009


César Sepúlveda <kropotkinix en gmail.com> wrote:
> Tengo un problema con un archivo tar.bz2 que esta corrupto, y necesito
> obtener información de este.

Urgh.  Unica copia?

[...]

> Hasta el momento estos son los pasos que he realizado.
> 
> bzip2recover el cual me genero 10435 archivos bz2, si no estoy equivocado
> bz2 comprime en bloques de 900k por lo cual cada uno de esos archivoz bz2
> debieran corresponder a 900k de mi archivo .tar cierto?

Asi es, AFAIU.

> bueno, luego de eso descomprimí, todos esos archivos bz2 lanzando la salida 
> hacia un único tar.

OK.

> for i in $(seq 0 9); do bzip2 -dc rec0$i*.tar.bz2 >> home_recuperado.tar ; 
> done && for i in $(seq 0 2); do bzip2 -dc rec1$i*.tar.bz2 >> 
> home_recuperado.tar ; done 

> luego de quitar algunos bz2 que estaban malos, creo que fueron alrededor
> de 4 o 5 la operación se pudo finalizar sin problemas creando un archivo
> tar de 10G aprox.

Tal vez varias iteraciones de '-v' hagan que bzip2(1) escupa suficiente
informacion para reparar esas piezas dan~adas?

El formato de tar(1) es bastante simple: Hay un encabezado para cada
archivo, luego el contenido del archivo (redondeado al siguiente 1/2 KiB).
Si faltan pedazos, pierde el hilo de donde va... y si el pajarito tenia tar
(sin comprimir) por alli, tendras serios problemas...

Detalles utiles en <http://en.wikipedia.org/wiki/Tar_%28file_format%29>.

Un programa alternativo es star, suele ser mas astuto en el manejo de
archivos dan~ados.

Una cosa con la que jugue un tiempo es tarx, pero star generalmente es
mejor opcion. Te envio el tarball actual por el privado.

> el problema es que ahora cuando intento extraer los archivos desde ese
> tar, este no funciona, me extrae unos cuantos archivos (ninguno
> necesario) y luego da error, copio algunas lineas:

> tar  vxf home_recuperado.tar
> ...
> ..
> .
> cesar/.mozilla/firefox/q7e43hjp.default/compreg.dat
> cesar/.mozilla/firefox/q7e43hjp.default/urlclassifier3.sqlite
> tar: Skipping to next header

Esto indica que encontro algo raro en el archivo. Probablemente un pedazo
faltante, y perdio el hilo.

Quiza la mejor opcion es reemplazar los pedazos malos por secuencias de 900
KiB de nulos (o espacios, o...)?

> tar: Archive contains obsolescent base-64 headers
> tar: Error exit delayed from previous errors

Esto da la idea de que tomo por encabezado algo que no lo era realmente.

> he buscado en Internet pero no se como hacer para que me extraiga las
> carpetas que realmente me importan (Documents, Desktop) (Suerte que uso
> correo a través de imap.)
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile 2340000       Fax:  +56 32 2797513


Más información sobre la lista de distribución Linux