Beschädigtes TAR (resultierender Ordner kleiner als gepackte Datei)

Beschädigtes TAR (resultierender Ordner kleiner als gepackte Datei)

Ich habe ein Problem mit einem Tarball, das auf einer SuSe 10.3 Server-Version erstellt wurde.

Die TAR-Datei hat eine Größe von 6,5 GB, aber wenn ich sie unter Ubuntu 9.10 entpacke, hat der resultierende Ordner nur eine Größe von 1,5 GB.

verwendete Befehle: tar cvfzum Packen, tar xvfzum Auspacken.

Vielleicht weiß jemand, wie das behoben werden kann, wäre toll.

Prost.

Antwort1

Wenn Sie Symlinks oder Hardlinks im Verzeichnis haben, fügt Tar möglicherweise jeden davon als separate Datei hinzu. Wenn Sie es dann auf einem Linux-Dateisystem dekomprimieren, werden die Links wiederhergestellt und alles nimmt weniger Platz ein.

Tar dient nicht zur Komprimierung, sondern nur zum Erstellen einer Datei mit mehreren Dateien. Aus diesem Grund wird es normalerweise über gzip oder bzip weitergeleitet.

Antwort2

Mit cpio erzielen Sie möglicherweise bessere Ergebnisse. Es ist für größere Backups viel besser geeignet und kann per Skript so konfiguriert werden, dass es symbolische Links und spezielle Dateien korrekt verarbeitet.

Antwort3

Wenn Sie viele kleine Dateien haben, kann es in Tar zu Blockierungen und Verzeichnis-Overhead kommen. Wichtig ist, wie groß das Quellverzeichnis war. Tar hat möglicherweise leeren Speicherplatz in Dateien komprimiert, indem es ihnen keine Blöcke zugewiesen hat. Versuchen Sie die --apparent-sizeOption zum du.

Sie können versuchen, die Liste der von generierten Dateien tar -tfmit den extrahierten Dateien zu vergleichen. Extrahieren Sie mit, tar -xfum zu sehen, ob beim Extrahieren Fehler auftreten. Versuchen Sie, eine Kopie des Tar-Archivs neu zu erstellen, um zu sehen, wie groß es ist.

Antwort4

Ich würde vorschlagen, es zu versuchenPersonen. Zumindest wird es in CentOS so genannt. Soweit ich mich erinnere, kann es mit beschädigten TAR-Dateien umgehen, indem es die ungültigen TAR-Mitglieder überspringt. Ansonsten empfehle ich Ihnen, mit dem zu experimentieren.Tar-DateiModul der Python-Standardbibliothek und mache das programmgesteuert. So etwas habe ich vor ein paar Jahren schon einmal gemacht.

verwandte Informationen