Durchsuchbares komprimiertes Dateisystemarchiv mit vollständigen Attributen?

Durchsuchbares komprimiertes Dateisystemarchiv mit vollständigen Attributen?

Eine Variante der ganzen Frage wäre vielleicht:Gibt es noch andere Archivierungstools, tardie die Dateiberechtigungen und Benutzer-/Gruppenflags von Linux beibehalten?

Ich möchte Archive eines Verzeichnisbaums auf meiner Ubuntu-Box erstellen. Die Verzeichnisbäume sind groß, ein erster Durchlauf ergab tar cvpzf archive.tgz /home/foo/barein 5 GB großes Archiv.

Ich möchte auch alle Berechtigungen und andere Flags und spezielle Dateien behalten.

Ich bin mit einem 5 GB großen Archiv zufrieden, aber um in dieses Archiv zu schauen, müssen – da es sich um ein komprimiertes Tar-Archiv handelt – zuerst die gesamten 5 GB dekomprimiert werden! (Zumindest scheint es so, wenn man es mit dem Archivbetrachter öffnet – ich lasse mich gern korrigieren.)

Ich brauche also eine Möglichkeit, ein Verzeichnis (einen Verzeichnisbaum) zu „sichern“ und dabei alle Dateisystemattribute und -rechte beizubehalten und ein Archiv mit einem „Index“ zu erstellen, das zum Durchsuchen seines Inhalts nicht dekomprimiert werden muss.


Bearbeiten: Angeben, was ich als Archiv betrachte, nachdemWhalleys Antwort:

Ein Archiv ist entweder eine einzelne Datei oder eine (kleine) Gruppe von Dateien, dievollUndvollständigInformationen in dieser/n Datei/en. Das heißt, sie kann auf jedem Dateisystem gespeichert werden (sofern die Größe dies zulässt), sie kann auf eine DVD gebrannt werden, Sie können splitsie (danach ist der Sinn dieser Frage eigentlich verloren – aber trotzdem), …

Antwort1

Kennen Sie die t-Funktion von tar zum Ausdrucken des Archivinhalts? Sie können sie auf ein gzip-komprimiertes Archiv wie dieses anwenden:

tar ztvf archive.tgz

Und es druckt die Dateien in einem langen Listenformat aus, einschließlich Zeitstempel und Größe. Es stellt sich heraus, dass, wenn Sie beim Erstellen des Archivs zwei v-Optionen verwenden, die Dateien beim Hinzufügen zum Archiv in einer langen Liste angezeigt werden (anstatt sie einfach aufzulisten). Sie können also so etwas tun, um automatisch einen Index zu erstellen, während Sie in einem Durchgang ein Backup durchführen:

tar cvvpzf archive.tgz /home/foo/bar > archive.tgz.index

Beachten Sie die Verwendung von zwei v-Optionen. Viele andere Befehle ermöglichen Ihnen, die Ausführlichkeit auf diese Weise zu erhöhen (z. B. ssh).

Antwort2

Ich bin mehrmals auf dieses Problem gestoßen. Hier ist, was ich herausgefunden habe.

REISSVERSCHLUSS
.zipDateien unterstützen Unix-Berechtigungen und symbolische Links, wenn sie mit dem auf den meisten Linux-Systemen installierten Zip-Dienstprogramm erstellt werden. Es unterstützt jedoch nichtalledie von unterstützten Erweiterungen tar, wie Hardlinks und erweiterte Attribute. Sie können jedoch Dateien aus ZIP-Archiven extrahieren, ohne das gesamte Archiv bis zu diesem Punkt zuerst zu dekomprimieren, also ist das ein Gewinn.

SquashFS
Wenn Sie nach einem mountbaren, komprimierten, schreibgeschützten Dateisystem suchen, ist der Top-Kandidat derzeitSquashFS. Aber die Sache hat einen Haken... oder eigentlich sogar mehrere. Genauer gesagt:

  • SquashFS ist relativ neu und wird nicht so umfassend unterstützt wie Tools wie tar.
  • Es gibt zwei Festplattenformate, die von zwei unterschiedlichen Versionen des Tools erstellt werden und nicht miteinander kompatibel sind. Stellen Sie sicher, dass Sie das richtige Format erhalten.
  • Es gibt keinen FUSE-Treiber – Sie benötigen In-Kernel-Unterstützung für Ihre Version von Squashfs, um Images zu mounten.
  • Die unterstützenden Tools ( mksquashfsund unsquashfs) sind ziemlich einfach und unterstützen nicht die große Bandbreite an Optionen, die Sie bei sehen tar.
  • Es gibt nicht viel Dokumentation.

Antwort3

Das Hauptproblem scheint zu sein, dass

... um in das Archiv zu schauen ... müssen zuerst die gesamten 5 GB dekomprimiert werden! (Oder so sieht es zumindest aus, wenn man es mit dem Archiv-Viewer öffnet ...)

Es stimmt, dass es dekomprimiert werden muss, aber das bedeutet nicht, dass es notwendig ist, alle Dateien in das Dateisystem zu „entpacken“.

Um eine oder mehrere Dateien zu extrahieren, tarwird das gesamte Archiv dekomprimiert, aber alles außer den als Argumente aufgeführten Dateien verworfen.
In ähnlicher Weise muss beim Auflisten der Dateinamen mit -t( --list) das gesamte Archiv dekomprimiert werden, aber der gesamte Dateiinhalt wird verworfen.

Um zu verstehen, warum am Anfang des Archivs kein Index vorhanden ist, müssen Sie berücksichtigen, dass tares ursprünglich für die Arbeit mit Magnetbandgeräten entwickelt wurde. Daher der Name tar– ähnlich wie Bandarchivierer. Auf einem Band möchten Sie die nächste Datei am Ende hinzufügen und nicht zum Schreiben eines Indexes an den Anfang zurückspulen.

Antwort4

Vielleicht möchten Sie sich fusecompress ansehen, das „ein mountbares Linux-Dateisystem bereitstellt, das seinen Inhalt transparent komprimiert. In diesem Dateisystem gespeicherte Dateien werden im laufenden Betrieb komprimiert und Fuse ermöglicht die Erstellung einer transparenten Schnittstelle zwischen komprimierten Dateien und Benutzeranwendungen.“

Für den Benutzer sind die gespeicherten Dateien so zugänglich, als wären sie nicht komprimiert.

Aber wenn Sie den Platz haben, warum kopieren Sie dann nicht einfach den Verzeichnisbaum? Das ist einfacher.

Eine weitere Möglichkeit besteht darin, die Verzeichnisbäume auf ein USB-Laufwerk zu kopieren. Dies würde einen einfachen Zugriff ermöglichen und vor einem Festplattenabsturz schützen.

verwandte Informationen