Ich habe ein mehrteiliges .rar
Archiv, das eine einzelne .tar.gz
Datei 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.gz
wie 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.gz
from part1
und stoppt dort mit einem Fehler. Ich probiere gerne Werkzeuge aus (muss nicht unrar sein).
data-recovery
compression
tar
rar
winrar
Alex ich
quelle
quelle
Antworten:
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.
Verwenden Sie 7zip, um die vorhandenen Teile zu extrahieren und sie entsprechend umzubenennen. dh: pt1 pt5 pt6 usw.
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 ...):
in meinem Fall habe ich verwendet:
Verketten Sie die Dateien (mit / b für Binärdateien)
in meinem Fall:
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.
quelle
7z %file
versucht 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?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.
quelle
Ich gehe davon aus, dass 100 MB Teile, Teil 3 fehlen. Du kannst es versuchen
Außerdem würde ich versuchen, was besser funktionieren könnte und WinRar denken lässt, dass die Datei beschädigt ist:
quelle
cat blubb.rar | unrar > file.tgz
.Schritt 1: Benennen Sie die Dateien um, zum Beispiel:
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.)
quelle
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.
quelle
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:
Wenn der Offset, den Sie suchen müssen, nicht prim ist, verwenden Sie eine Blockgröße größer als eins.
dd
kann nurseek
auf ein Vielfaches der Ausgabeblockgröße.dd
macht wirklichread
undwrite
Systemaufrufe mit dieser Blockgröße, alsobs=1
wirklich scheiße.Eine große
ibs
(Eingabeblockgröße) würde die Hälfte der CPU-Zeit sparen, da sieseek
in Einheiten vonobs
(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 mitbs=1
bis zu 32 KB ausrichtentail -c +$misalignment lastpart/file | dd ... of=p1/file conv=notrunc bs=32k seek=$(( (full_size - lastpart_size + misalignment) / (32 * 1024) ))
quelle