BZ2

Was ist eine BZ2-Datei?

Komprimiert besser als GZ und braucht dafür merklich länger.

Was BZ2 ist

BZ2 ist ein Stromformat, das von vorn nach hinten geschrieben und gelesen wird. Eingesetzt wird es für die Archivierung.

Die Endung lautet .bz2, der volle Name Bzip2 Archive. Beides sagt weniger aus als das, was die Datei halten kann — und davon handelt der Rest dieser Seite.

Woher BZ2 kommt

Es geht auf 1996 zurück.

Einem Format, das so lange lesbar geblieben ist, kann man etwas anvertrauen, das man in zehn Jahren wiederhaben will.

Die Spezifikation ist öffentlich

Sie ist vollständig veröffentlicht, das Format lässt sich also aus dem Dokument umsetzen statt durch Nachsehen. Deshalb taucht es in so vielen Programmen auf, und deshalb gehen Dateien von vor zwanzig Jahren heute noch auf. Veröffentlicht heißt allerdings nicht lizenzfrei: Wo ein Format einen Codec einpackt, ist die Patentfrage eine eigene, die der Standard nicht mitbeantwortet.

Es ist ein Altformat

Es geht überall noch auf und wird von älteren Programmen noch geschrieben, aber es wird nichts Neues mehr darum herum gebaut. Wandle um, was du behalten willst, und wähle es nicht für etwas, das heute anfängt.

Es wird nichts weggeworfen

BZ2 speichert seinen Inhalt exakt. Erneutes Speichern ändert nichts, es lässt sich also beliebig oft öffnen, bearbeiten und wieder ablegen, ohne dass sich Schaden ansammelt — genau das macht es zu einem Arbeitsformat und nicht zu einem Ausgabeformat.

Es hält genau eine Datei

BZ2 komprimiert einen einzelnen Strom und kennt weder Dateinamen noch Ordner. Deshalb steht es so oft neben TAR, das die fehlende Struktur beisteuert.

Woher sein Kompressionsverhältnis kommt

Es arbeitet mit 900 KB am Stück: So groß ist der Abschnitt, innerhalb dessen eine Wiederholung liegen muss, damit sie überhaupt wegkomprimiert werden kann.

Diese eine Zahl erklärt den größten Teil des Unterschieds zwischen einem Archivformat und dem nächsten. Ein größerer Abschnitt findet mehr Wiederholung und braucht dafür mehr Zeit und mehr Speicher — das ist der ganze Handel.

Was es zu seinem eigenen Schutz tut

BZ2 bringt eine Prüfsumme, mit der eine beschädigte Datei auffällt statt stillschweigend falsch gelesen zu werden mit.

Reparieren tut eine Prüfsumme nichts. Sie sagt dir, dass die Datei kaputt ist — das ist der Unterschied zwischen jetzt davon erfahren und es von dem erfahren, dem du sie geschickt hast.

Was BZ2 öffnet

bzip2, 7-Zip und Keka lesen es, und die meisten Programme derselben Art ebenfalls.

Wenn eine Datei nicht aufgeht, liegt es selten am Format — häufiger daran, dass das Programm älter ist als das Format. Die Umwandlung in etwas Älteres ist der verlässliche Weg daran vorbei, und dafür gibt es den Rest dieser Website.

Im Browser öffnen

Kein Browser liest es.

Das ist der häufigste Grund, es umzuwandeln: nicht dass das Format schlecht wäre, sondern dass die Stelle, an der die Datei erscheinen soll, es nicht lesen kann.

Es ist ein Ausgabeformat

BZ2 ist zum Weitergeben gedacht, nicht zum Arbeiten. Eines zu bearbeiten ist möglich und selten angenehm; der vernünftige Weg führt über die Quelle und einen neuen Export.

Was damit schiefgeht

Die wiederkehrenden Klagen: es hält einen Strom und kann keinen Ordner beschreiben.

Nichts davon ist ein Grund, das Format zu meiden. Es sind die Dinge, die man kennen sollte, bevor eines davon einen überrascht — das ist eine andere und eine nützlichere Behauptung.

Von beiden Seiten überholt, und das darf man auch so sagen

Bzip2 erschien 1996 und komprimierte spürbar besser als gzip, und für etwa ein Jahrzehnt war .tar.bz2 die vernünftige mittlere Wahl für Quellcode-Veröffentlichungen und Archive. Diese Zeit ist vorbei. xz komprimiert stärker, zstd ist bei ähnlichen Verhältnissen schneller, und beide entpacken zügiger als bzip2.

Eine .bz2, auf die man heute trifft, ist also fast immer alt — eine archivierte Veröffentlichung, ein vor Jahren publizierter Datensatz, eine Sicherung von einem System, dessen Voreinstellungen 2008 festgelegt wurden. Ein Argument, neue zu erzeugen, gibt es nicht mehr, die relevante Frage ist, wie man die vorhandene öffnet.

Es sortiert die Daten, statt sie zu durchsuchen

Jeder andere Kompressor auf dieser Seite — gzip, xz, 7z, zip — sucht rückwärts nach wiederkehrenden Sequenzen. Bzip2 macht etwas anderes: Die Burrows-Wheeler-Transformation ordnet einen Datenblock so um, dass ähnliche Zeichen nebeneinanderstehen, und ein einfacher Kodierer nutzt die dabei entstehenden Wiederholungen aus.

Das Überraschende ist, dass sich die Umordnung exakt rückgängig machen lässt. Der Ansatz ist elegant und erklärt die Eigenschaften des Formats: gute Verhältnisse bei Text, langsames Entpacken, weil die Transformation umgekehrt werden muss, und ein Speicherbedarf, der von der Blockgröße abhängt, nicht von der Dateigröße.

Blöcke, die es reparierbar machen

Bzip2 arbeitet auf unabhängigen Blöcken, standardmäßig 900 KB groß. Jeder Block wird für sich komprimiert und entpackt, ohne Bezug auf seine Nachbarn.

Das verleiht dem Format eine Eigenschaft, die keinem anderen hier zukommt: Ist ein Teil eines Archivs beschädigt, bleiben die unversehrten Blöcke lesbar, und ein Wiederherstellungswerkzeug kann sie extrahieren. Bei gzip oder xz kostet eine Beschädigung früh im Datenstrom meist alles, was danach folgt. Für ein altes Archiv auf einem ausfallenden Datenträger ist das ein echter, gelegentlich entscheidender Vorteil.

Und sie machen es parallelisierbar

Weil die Blöcke unabhängig sind, lassen sie sich gleichzeitig auf verschiedenen Prozessorkernen komprimieren und entpacken. Werkzeuge wie pbzip2 und lbzip2 nutzen das aus und erzeugen Dateien, die gewöhnliches bzip2 weiterhin liest.

Auf einer Maschine mit acht Kernen macht das aus bzip2s größter Schwäche etwas Erträgliches. Das ist der Hauptgrund, warum das Format in der wissenschaftlichen Datenverarbeitung so lange durchhielt, wo Dateien groß und Rechenkerne reichlich vorhanden sind.

Die doppelte Endung, wieder einmal

Bzip2 komprimiert genau einen Datenstrom. Es kennt kein Verzeichnis, keine Dateinamen, keine Vorstellung von mehreren Dateien — dieselbe Form wie bei gzip und xz. Deshalb ist .tar.bz2 die übliche Kombination: tar bündelt den Verzeichnisbaum zu einem Strom, und bzip2 komprimiert diesen.

Eine reine .bz2 zu entpacken ergibt also genau eine Datei. Wer einen Ordner erwartet hatte, findet ihn im .tar darin, und die meisten Werkzeuge stellen die beiden Schritte als einen dar.

Wo die Zahlen tatsächlich liegen

Bei typischem Text und Quellcode liegt bzip2 rund ein Viertel unter gzip — 25 und 27 Prozent bei zwei für diese Seite gemessenen Quellcode-Sammlungen — und innerhalb weniger Prozentpunkte von xz bei derselben Art Eingabe. Beim Komprimieren ist es mehrfach langsamer als gzip, beim Entpacken noch langsamer, und genau das war sein Ende.

Dieser letzte Punkt macht das Format unattraktiv statt nur überholt. Eine Datei wird einmal komprimiert und viele Male gelesen, ein Format, das langsam liest, zahlt seinen Preis also wiederholt. xz ist langsam beim Schreiben und schnell beim Lesen — die richtige Reihenfolge.

Es war eine Zeit lang unbetreut, und das hatte Folgen

Das ursprüngliche bzip2 blieb jahrelang ohne Veröffentlichung, und 2019 fand sich im Entpacker ein Fehler beim Schreiben außerhalb des vorgesehenen Speicherbereichs, der schon lange dort gestanden hatte. Die Pflege wurde seither wieder aufgenommen, und der Fehler ist in allem Aktuellen behoben.

Das gehört eher zum Hintergrund als zur Warnung an die eigenen Dateien: Eine .bz2 ist Daten, kein Programmcode, und sie mit aktueller Software zu öffnen ist unauffällig. Die Episode ist Teil dessen, warum Distributionen weiterzogen, neben der Geschwindigkeit.

Öffnen, und was als Nächstes sinnvoll ist

Jedes Linux- und macOS-System verarbeitet bzip2 auf der Kommandozeile, und 7-Zip liest es unter Windows ohne Weiteres. Eine .tar.bz2 zu entpacken sind zwei Schritte, die die meisten Werkzeuge als einen darstellen.

Diese Seite wandelt eine .bz2 wie jedes andere Archiv über 7-Zip auf dem Server um, innerhalb der 25-MB-Grenze für serverseitige Umwandlungen. Geht der Inhalt an jemand anderen weiter, ist ZIP die richtige Wahl — es öffnet sich ohne Zutun auf jedem Rechner. Geht er zurück an ein Unix-System, sind .tar.gz oder .tar.xz die richtige Wahl, weil sie die Rechte und symbolischen Links erhalten, die tar mitführt und die ZIP verwirft. Eine neue .bz2 zu erzeugen ist die einzige Option ohne jeden Vorteil.

Die Eckdaten auf einen Blick

Kennungen und Herkunft des Formats BZ2.
Endung.bz2
Medientypapplication/x-bzip2
Erstmals veröffentlicht1996