Frage Recover Enorme und Broken Gzip-Datei


Ich habe eine 50.9 GB Datei, die eine Sicherung meines Home Folders auf Ubuntu 12.04 ist. Ich komprimierte diese Datei mit tar auf Terminal von meinem SDA (ext4) Laufwerk zu SDB (ext4). Der Befehl, den ich benutzte, war

tar cvfz /media/2ndHDD/home.tar /home/<my_username>

Ich habe diesen Fehler nach der Komprimierung erhalten:

tar: Exiting with failure status due to previous errors.

Ich habe die Komprimierung dreimal wiederholt, aber den gleichen Fehler, den ich bekomme, wenn die Komprimierung beendet ist. Da ich im dritten Versuch schon zu erschöpft bin (vor allem, dass ich den ganzen Tag gebraucht habe), ignorierte ich einfach den Fehler und hoffte, dass es keinen Einfluss auf die Dekomprimierung der Datei hat.

Danach habe ich ein neues Betriebssystem installiert, welches Ubuntu 14.04 auf meinem sda-Laufwerk ist. Nach der Installation habe ich versucht, die Datei, die ich vor einiger Zeit komprimiert habe, zu entpacken

tar xvf home.tar

aber ich bekomme diesen Fehler:

gzip: stdin: invalid compressed data--format violated
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

Also habe ich versucht, die Datei mit gzip zu entpacken

gzip home.tar 

und wartete fast 1 Stunde bis zum Ende. Und danach dekomprimierte ich es wieder mit gzip dieses Mal.

tar -xvzf home.tar.gz

Der Prozess kann nicht beendet werden und wird nach 15 Minuten beendet, was den erstellten Home-Ordner unvollständig zu den erwarteten Dateien macht. Ich wiederholte den Vorgang immer und immer wieder, aber ich werde es nicht wirklich beenden.

Gibt es eine Möglichkeit, diese riesige komprimierte Datei wiederherzustellen? Ich habe es schon versucht gzrecover (http://fosshelp.blogspot.com/2013/04/howto-recover-corrupted-targz-file.html) aber immer scheitert. Könnte es auch möglich sein, dass ich meine Dateien bereits verloren habe, als ich versuchte, sie in gzip zu konvertieren? Ich bedaure wirklich, warum ich nicht einfach den Home-Ordner unkomprimiert kopiert habe. :(

UPDATE: Gerade habe ich versucht, es mit diesem Befehl zurück in tar zu konvertieren

gzip -d home.tar.gz 

und dekomprimiert es durch Laufen

tar xvf home.tar 

Jetzt bekomme ich diesen Fehler:

gzip: stdin: invalid compressed data--format violated
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

Und selbst wenn Sie nur die Dateien in der TAR-Datei auflisten, wird die Verarbeitung nicht abgeschlossen

tar -tvf home.tar

Ich werde immer noch den gleichen Fehler oben erhalten

UPDATE (01/11/2015): Ich habe versucht zu rennen strace gunzip home.tar.gz und nach ungefähr 15-20 Minuten bekam ich diese:

read(3, "\231\300\2678\242p\206\371\341\322\352\312\374\271?\252.\1775sC\330|D$PF$\10r\362V"..., 32768) = 32768
write(4, "\256Y\341\224\362Nn\315\316\373>\31\202\275c\373\266\265\345\27 R\312\2\221b'6\263\321\10F"..., 32768) = 32768
read(3, "[\366\"\r\265\244\3s\201\223b\n\267\364\34\247Ej\210tF\22\255B\254\223\216E\26\242\321\210"..., 32768) = 32768
write(4, "\n1g\201\\m\231\364\352@\"%\207\"Q+\37a^!8\226\233\204\244\v\334&i\361\2a"..., 32768) = 32768
read(3, "\222\327\351\337(\376\376?\246AzC\371\231\200${V\361\310W9.\3571a\362\357\251\306o\234"..., 32768) = 32768
write(4, "\346\216sH\250\272\264T\335\356<?\377\266\272o{\32\21\264\367\34\377w\327\220\324\313\231\2775\337"..., 32768) = 32768
read(3, "\266\276\345\213\277}G\235\355\360\326\232\244\353Z\\\215\222g\354\202\356\351\303G~\210\363b\31\17P"..., 32768) = 32768
write(4, "\326!1\332\213\253\276\327\222<\345\25\210\366\266\337uSkj>\345$\257\225\2q\321^8Jk"..., 32768) = 32768
read(3, "~D\212\373\372\"\373\367m0\322%\365S\377\335\331\336\376RB\037727e'\371#S\224\223"..., 32768) = 26366
read(3, "", 6402)                       = 0
write(4, "\23\320\"\0059\24\20\"\5#M\210I\323\320\363T\220N\321\301\207\\\327(I\204\362\371\377\32!"..., 32768) = 32768
write(4, " \6\325\33\246\324\35\240h\225B\270\312\207\211\340)\314\27\17\"pv\2232?\"0Sez\247"..., 14402) = 14402
close(3)                                = 0
utimensat(4, NULL, {{1420884866, 686801693}, {1420818997, 36136000}}, 0) = 0
fchown32(4, 1000, 1000)                 = 0
fchmod(4, 0666)                         = 0
close(4)                                = 0
rt_sigprocmask(SIG_BLOCK, [HUP INT PIPE TERM XCPU XFSZ], [], 8) = 0
unlink("home.tar.gz")                   = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
_llseek(0, 0, 0xbf8c86a0, SEEK_CUR)     = -1 ESPIPE (Illegal seek)
close(0)                                = 0
close(1)                                = 0
close(2)                                = 0
exit_group(0)                           = ?
+++ exited with 0 +++

Kann ich es mit der obigen Ausgabe noch wiederherstellen? Ich weiß einfach nicht wo ich anfangen soll :(


0
2018-01-10 12:10


Ursprung


Es wäre hilfreicher, wenn Sie anstelle dessen, was Sie getan haben, eine vollständige Liste von Befehlen (in einer Reihenfolge und genau so, wie Sie sie geschrieben haben), die Sie verwendet haben, verwenden und dann auf die folgenden Befehle Bezug nehmen, die gescheitert sind. - Marcin Kaminski
bearbeitet und hoffentlich ist es jetzt ein bisschen klarer? - JoenasE


Antworten:


Zuerst haben Sie ein gezipptes tar-Archiv erstellt mit:

tar cvfz /media/2ndHDD/home.tar /home/<my_username>

Sie ignorierten die Fehler und scrollten nicht nach oben, um zu sehen, was sie waren (ziemlich schlechte Idee). Dann haben Sie versucht, die TAR-Datei zu entpacken (selbst ohne die Option -z hätte es erkannt, dass es sich um ein gezipptes tar-Archiv handelt):

tar xvf home.tar

Es hat nicht funktioniert und Sie haben das bereits komprimierte (mit dem gleichen Komprimierungsalgorithmus) Archiv komprimiert. Kannst du den Denkprozess hier erklären?

gzip home.tar

Dann hast du versucht, einen gezippten Tarball auszupacken, der erneut gezippt wurde:

tar -xvzf home.tar.gz

Lassen Sie mich fragen - wissen Sie, was Sie erreichen wollen oder ist das alles nur zufällige Befehle zu versuchen, "mal sehen was passiert", ohne darauf zu achten, was sie tatsächlich tun?

Ich empfehle dringend, Backups in der Zukunft besser zu planen und auf Fehler zu achten, die da waren, weil die Teerentwickler sie für wichtig genug hielten (schließlich ist es ein Backup - ziemlich wichtig), dass sie am Ende wiederholt werden sollten der Prozess...

Diesmal versuche ich zunächst zu sehen, was das eigentliche Format Ihres Archivs (oder was davon übrig ist) ist. Benutzen:

file <archive_file>

Wenn es tatsächlich tar Archiv gezippt wird und es diese Fehler wirft, habe ich Angst du bist Pech gehabt.

UPDATE: Ich habe gelesen, dass die aktuelle Datei ein gzip-Archiv ist:

home.tar: gzip compressed data, from Unix, last modified: Fri Jan  9 22:07:25 2015.

Stellen Sie sicher, dass Sie, abhängig von der Art der komprimierten Daten, 4 mal soviel freien Speicherplatz auf der Partition haben, wo Sie dies tun. Verschieben Sie die Datei "home.tar" außerhalb des Verzeichnisses "/ home", wenn sie sich nicht bereits an einem anderen Speicherort befindet.

Führen Sie Folgendes als letzte Möglichkeit aus, es zu entpacken:

gunzip -c home.tar > home1.tar
file home1.tar

Der Befehl Fist versucht, die Datei home.tar in home1.tar zu entpacken. Der andere wird dir sagen, was home1.tar eigentlich ist. Es könnte immer noch ein anderes gzip-Archiv sein.

Ob file sagt, dass es gziped Daten ist, führen Sie:

gunzip -c home1.tar > home2.tar

Achten Sie darauf, dass Sie auf Dateinamen achten. Finde heraus, was home2.tar jetzt ist:

file home2.tar

Wenn die Daten gezippt wurden, führen Sie Gunzip erneut wie oben beschrieben aus und richten Sie dieses Mal auf home3.tar um. Lauf file darauf nochmal.

Wenn es sagt:

homeX.tar: POSIX tar archive (GNU)

Versuchen Sie, seinen Inhalt aufzulisten mit:

tar taf homeX.tar

und wenn das funktioniert, entpacke die TAR-Datei.


3
2018-01-10 21:59



Ich versuchte zu gzip home.tar weil ich dachte, dass es den Fehler beheben wird gzip: stdin: invalid compressed data--format violated. Dies ist das erste Mal, dass ich den Befehl benutze, wenn ich einen Tarball entpacke. Normalerweise werde ich es nur im Nautilus machen, aber es ist fehlgeschlagen, deshalb habe ich mein Glück mit dem Befehl versucht. Es ist auch das erste Mal, dass ich solch eine riesige Datei sichern kann, wenn ich ein Ubuntu OS neu installiere. Apropos, file home.tar gibt das zurück home.tar: gzip compressed data, from Unix, last modified: Fri Jan 9 22:07:25 2015. - JoenasE
Ja, ich glaube, ich habe kein Glück mehr, weil ich versucht habe, es über Nacht mit PhotoRec wiederherzustellen (ich habe nur unbekannte und nutzlose Dateien mit unbekannten Zeichen auf ihnen zB auf den txt-Dateien gefunden) und auf Windows mit 7zip, DataNumen Teerreparatur und sogar mit WinRar. Immer noch kein Glück :( Was für ein dummer Fehler! - JoenasE