Tengo un .rar
archivo de varias partes que contiene un solo .tar.gz
archivo dentro (no pregunte por qué, así es como se hizo). Me faltan algunas de las partes, pero tengo la primera parte. Me gustaría extraer la mayor cantidad .tar.gz
posible. ¿Cómo puedo hacer eso?
Si me quedo unrar x -kb file.part1.rar
siempre extrae el inicio de la .tar.gz
de part1
y se detiene allí con un error. Estoy feliz de probar cualquier herramienta (no tiene que ser unrar).
data-recovery
compression
tar
rar
winrar
Alex I
fuente
fuente
Respuestas:
Tenía una cosa similar en Windows , cuando tenía partes 1,5,6,9,10 de 10. Me faltaban partes 2,3,4,7,8.
usa 7zip para extraer las partes que tienes y renómbralas como corresponda. es decir: pt1 pt5 pt6, etc.
genere un archivo nulo (cero) para llenar las partes que faltan, utilizando el tamaño exacto en bytes de cada una de las partes que TIENE y extrae (es decir, el tamaño de pt1, que es el mismo que el tamaño de pt5 y pt6 ...):
en mi caso usé:
concatenar los archivos (usando / b para archivos binarios)
en mi caso:
cuando terminó, cargué el archivo en el cliente de bittorrent de Deluge y volví a comprobarlo, y solo me faltaba el porcentaje que realmente no tenía, lo que significa que el cliente de bittorrent identificó que sí tengo la información verdadera entre todos los ceros. adicional.
fuente
7z %file
intenta cargar todos los archivos de pieza y devuelve un error si ya falta uno de ellos. ¿Qué tiene que ver todo esto con los torrents? ¿Puedo extraer los archivos comprimidos originales individuales del binario concatenado usando Deluge?Probablemente esto ya no sea relevante, pero tuve el mismo problema y encontré una solución simple que funcionó para mí y pensé que sería bueno compartirla.
Tenía un archivo RAR protegido con contraseña en 6 partes, pero faltaba la parte 4. Traté de usar la función de "reparación" de WinRAR pero dijo que no podía encontrar el registro de recuperación. Probé los métodos anteriores pero no funcionaron y la extracción siempre se detenía donde comenzó la parte faltante.
Finalmente, decidí engañar a WinRAR para que pensara en las partes 5 y 6 donde había un archivo diferente y los renombré como "archive.part1.rar" y "archive.part2.rar". Luego le dije a WinRAR que extrajera la nueva parte 1 y, aunque recibí un mensaje de error que decía que no podía extraer el archivo que finalizó al comienzo de la nueva parte 1 (ya que faltaban algunos datos de la parte 4 que faltaba), logró extraer todos los demás archivos de las partes originales 5 y 6.
Espero que esto ayude a otras personas con el mismo problema en el futuro.
fuente
Supongo que faltan 100Mb, falta la parte 3. Puedes probar
También lo intentaría, lo que podría funcionar mejor y hacer pensar a WinRar, el archivo está dañado:
fuente
cat blubb.rar | unrar > file.tgz
.Paso 1: cambie el nombre de los archivos, por ejemplo:
Paso 2: usa 7-Zip para extraer cada archivo.
¡Lucro!
(En algunas circunstancias, el cambio de nombre es innecesario y puede dejar que 7-Zip extraiga todos los archivos por usted).
fuente
Solo tenía la segunda parte del archivo rar de dos partes, mientras desempacaba la parte 2 como se esperaba winrar apareció un mensaje diciendo que faltaba la primera parte; También noté que el contenido completo de la segunda parte había sido desempaquetado en la carpeta; así que sin tocar el mensaje emergente de winrar, copié los archivos desempaquetados en otra carpeta y luego hice clic en cerrar en el mensaje emergente de winrar; Winrar eliminó el contenido desempaquetado, pero como los había copiado anteriormente en una carpeta diferente, pude usar el contenido desempaquetado de esa carpeta diferente.
fuente
7-zip extraerá la parte de un archivo de un rar de varias partes, y luego puede volver a unirlas con dd. Por ejemplo, si tiene las primeras y últimas partes rar:
Si el desplazamiento que necesita buscar no es primo, use un tamaño de bloque mayor que uno.
dd
solo puedeseek
a múltiplos del tamaño del bloque de salida.dd
Realmente haceread
ywrite
llama al sistema con ese tamaño de bloque, así quebs=1
realmente apesta.Un gran
ibs
(tamaño de bloque de entrada) ahorraría la mitad del tiempo de CPU, ya queseek
está en unidades deobs
(tamaño de bloque de salida). O tal vez hay alguna otra herramienta que puede buscar una posición de byte arbitraria y luego hacer E / S de tamaño normal. O si estuviera escribiendo esto, podría hacer dd conbs=1
hasta 32k alineados, entonces tal veztail -c +$misalignment lastpart/file | dd ... of=p1/file conv=notrunc bs=32k seek=$(( (full_size - lastpart_size + misalignment) / (32 * 1024) ))
fuente