Wie extrahiere ich mehrteilige Rar mit fehlenden Teilen?


11

Ich habe ein mehrteiliges .rarArchiv, das eine einzelne .tar.gzDatei enthält (fragen Sie nicht warum, so wurde es erstellt). Ich vermisse einige Teile, habe aber den ersten Teil. Ich möchte so viel .tar.gzwie möglich davon extrahieren . Wie kann ich das machen?

Wenn ich starte unrar x -kb file.part1.rar, extrahiert es immer den Anfang von .tar.gzfrom part1und stoppt dort mit einem Fehler. Ich probiere gerne Werkzeuge aus (muss nicht unrar sein).


1
Offensichtlich brauchen Sie das Ganze, es wird sonst nicht funktionieren
Krankster

1
Nun, er sagt, er will "so viel wie möglich". Es ist jedoch sehr wahrscheinlich, dass alles, was er extrahiert, nicht verwendet werden kann, es sei denn, es handelt sich um ein einfaches Dateiformat (Bitmap?).
WindowsEscapist

Wenn sich in einem anderen Archiv viele Dateien befinden, kann er möglicherweise einige der Dateien wiederherstellen. Der Trick besteht darin, WinRar so weit wie möglich zu extrahieren.
Davidbaumann

2
Ich verstehe nicht, warum Leute Fragen ablehnen, nur weil sie nicht verstehen.
Davidbaumann

Haben Sie eine Lösung gefunden und mit uns geteilt?
Davidbaumann

Antworten:


2

Ich hatte eine ähnliche Sache an Fenstern , als ich Teile 1,5,6,9,10 von 10 hatte. Mir fehlten Teile 2,3,4,7,8.

  1. Verwenden Sie 7zip, um die vorhandenen Teile zu extrahieren und sie entsprechend umzubenennen. dh: pt1 pt5 pt6 usw.

  2. Generieren Sie eine Nulldatei (Null), um die fehlenden Teile zu füllen, und verwenden Sie dabei die genaue Größe der von Ihnen vorhandenen und extrahierten Teile in Byte (dh die Größe von pt1, die der Größe von pt5 und pt6 entspricht ...):

    fsutil file createnew [path_to_file] [size_in_bytes]

    in meinem Fall habe ich verwendet:

    fsutil file createnew C: \ TMP \ empty 1022701562

  3. Verketten Sie die Dateien (mit / b für Binärdateien)

    Kopieren / b Datei1 + Datei2 + Datei3 Zieldatei

    in meinem Fall:

    copy / b pt1 + leer + leer + leer + pt5 + pt6 + leer + leer + pt9 + pt10 Ausgabedatei

Als es fertig war, lud ich die Datei in den Bittorrent-Client von Deluge und erzwang eine erneute Überprüfung. Es fehlte mir nur der Prozentsatz, den ich wirklich nicht hatte, was bedeutet, dass der Bittorrent-Client feststellte, dass ich die wahren Informationen zwischen allen Nullen I habe hinzugefügt.


Ich verstehe die Anweisungen nicht sehr gut. Wie extrahieren Sie die Teile, die Sie haben, aus 7zip? 7z %fileversucht alle Teiledateien zu laden und gibt einen Fehler zurück, wenn eine davon bereits fehlt. Was macht das Ganze mit Torrents? Kann ich die einzelnen komprimierten Originaldateien mit Deluge aus der verketteten Binärdatei extrahieren?
CDuguet

5

Dies ist wahrscheinlich nicht mehr relevant, aber ich hatte nur das gleiche Problem und fand eine einfache Lösung, die für mich funktionierte und dachte, es wäre schön, sie zu teilen.

Ich hatte ein passwortgeschütztes RAR-Archiv in 6 Teilen, aber Teil 4 fehlte. Ich habe versucht, die "Reparatur" -Funktion von WinRAR zu verwenden, aber es wurde angegeben, dass der Wiederherstellungsdatensatz nicht gefunden werden konnte. Ich habe die oben genannten Methoden ausprobiert, aber sie haben nicht funktioniert und die Extraktion wurde immer dort gestoppt, wo der fehlende Teil begann.

Schließlich habe ich beschlossen, WinRAR in die Teile 5 und 6 zu täuschen, in denen sich ein anderes Archiv befindet, und sie in "archive.part1.rar" und "archive.part2.rar" umbenannt. Ich habe dann WinRAR angewiesen, den neuen Teil 1 zu extrahieren, und obwohl ich eine Fehlermeldung erhielt, dass die am Anfang des neuen Teils 1 endende Datei nicht extrahiert werden konnte (da einige Daten aus dem fehlenden Teil 4 fehlten), Es gelang ihm, alle anderen Dateien aus den Originalteilen 5 und 6 zu extrahieren.

Ich hoffe, dass dies in Zukunft anderen Menschen mit dem gleichen Problem helfen wird.


1

Ich gehe davon aus, dass 100 MB Teile, Teil 3 fehlen. Du kannst es versuchen

cat blubb.part01.rar blubb.part02.rar blubb.part04.rar > blubb.rar

Außerdem würde ich versuchen, was besser funktionieren könnte und WinRar denken lässt, dass die Datei beschädigt ist:

dd if=/dev/zero of=blubb.part03.rar bs=1M count=100
cat blubb.part01.rar blubb.part02.rar blubb.part03.rar blubb.part04.rar > blubb.rar

Gute Ideen, ausprobiert. 1. Wenn alle vorhandenen Teile verkettet sind, schlägt unrar an genau derselben Stelle fehl (CRC-Fehler). 2. Wenn ich nur ein späteres Teil kopiere, um denselben Namen wie das fehlende Teil zu haben, schlägt es an derselben Stelle fehl, druckt dann aber Nachrichten aus, die implizieren, dass die späteren Teile verarbeitet werden (möglicherweise wird nach dem Start einer anderen Datei gesucht). 3. Wenn ich mit dd eine Null-Null-Datei erstelle, schlägt dies mit "Bad archive" fehl
Alex I

Und wenn ich eine Datei mit allen Nullen erstelle und verkette, schlägt dies an derselben Stelle mit "Volume kann nicht gefunden werden" fehl
Alex I

Ich denke nur : cat blubb.rar | unrar > file.tgz.
Davidbaumann

Vielleicht möchten Sie WinRar für Windows verwenden
Davidbaumann

1

Schritt 1: Benennen Sie die Dateien um, zum Beispiel:

file.part1.rar -> fileA.rar
file.part2.rar -> fileB.rar
file.part3.rar -> fileC.rar
etc..

Schritt 2: Verwenden Sie 7-Zip , um jede Datei zu extrahieren.

Profitieren!

(Unter bestimmten Umständen ist ein Umbenennen nicht erforderlich, und Sie können 7-Zip alle Dateien für Sie extrahieren lassen.)


3
Dies hilft nicht bei Dateien, die mehr als eine Teiledatei umfassen.
Rohit Gupta

Haben Sie versucht, jede umbenannte Datei einzeln mit 7-Zip zu extrahieren?
Cychoi

1

Ich hatte nur den zweiten Teil des zweiteiligen Rar-Archivs, während beim Auspacken von Teil 2 wie erwartet Winrar eine Meldung veröffentlichte, dass der erste Teil fehlte. Ich bemerkte auch, dass der gesamte Inhalt von Teil zwei in den Ordner entpackt worden war; Ohne die Popup-Nachricht von Winrar zu berühren, habe ich die entpackten Dateien in einen anderen Ordner kopiert und dann in der Popup-Nachricht von Winrar auf Schließen geklickt. Der entpackte Inhalt wurde von winrar gelöscht, aber da ich ihn zuvor in einen anderen Ordner kopiert hatte, konnte ich den entpackten Inhalt aus diesem anderen Ordner verwenden.


0

7-zip extrahiert den Teil einer Datei aus einem mehrteiligen rar, und dann können Sie sie mit dd wieder zusammenfügen. Zum Beispiel, wenn Sie den ersten und den letzten Rar-Teil haben:

7z x p1.rar
mv dir p1  # rename out of the way
7z x plast.rar
unrar l p1.rar
   # note the file size of the entire file
ls -l dir/file  # note the size of the last part
dd if=dir/file of=p1/file  conv=notrunc  bs=1 seek=$((full_size - lastpart_size))

Wenn der Offset, den Sie suchen müssen, nicht prim ist, verwenden Sie eine Blockgröße größer als eins. ddkann nur seekauf ein Vielfaches der Ausgabeblockgröße. ddmacht wirklich readund writeSystemaufrufe mit dieser Blockgröße, also bs=1wirklich scheiße.

Eine große ibs(Eingabeblockgröße) würde die Hälfte der CPU-Zeit sparen, da sie seekin Einheiten von obs(Ausgabeblockgröße) angegeben ist. Oder vielleicht gibt es ein anderes Tool, das nach einer beliebigen Byte-Position suchen und dann E / A mit normaler Größe ausführen kann. Oder wenn Sie dieses Skript erstellt haben, können Sie es mit bs=1bis zu 32 KB ausrichtentail -c +$misalignment lastpart/file | dd ... of=p1/file conv=notrunc bs=32k seek=$(( (full_size - lastpart_size + misalignment) / (32 * 1024) ))

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.