BZIP2-Archiv (.bz2)
Bzip2 StandardBzip2 (BZ2) ist ein klassisches, patentfreies Unix-Komprimierungsdienstprogramm und Dateiformat, das von Julian Seward erstellt wurde und die Burrows-Wheeler-Transformation verwendet, um eine deutlich höhere Komprimierung als klassisches Gzip zu erreichen.
Untersuchen & Metadaten
Betriebssysteme und Dateianalysatoren identifizieren BZ2-Dateien durch Untersuchung der führenden binären Byte-Sequenz:
Byte-basierte Headersignatur (Magic Bytes)
Betriebssysteme und Dateianalysatoren identifizieren BZ2-Dateien durch Untersuchung der führenden binären Byte-Sequenz:
HEX-SIGNATUR (OFFSET 0):
42 5A 68ASCII-DARSTELLUNG: BZh
Standardisierung: Bzip2 Open Source Standard
Technische Daten
| Container-Architektur | Stream-Header („BZh" + Blockgrößenziffer 1-9), gefolgt von komprimierten Datenblöcken und 32-Bit-CRC |
| Kompression | Burrows-Wheeler-Transformation (BWT), Move-to-Front-Transformation (MTF) und Huffman-Codierung |
| Byte-Endianness | Big-Endian-Bitstream-Framing |
| Farbräume | Nicht zutreffend (Byte-Kompressionsstrom) |
| Kanäle & Struktur | Einzeldatei-komprimierter Bytestream |
| Max. Abmessungen | Unbegrenzte Stream-Länge (unterstützt beliebige Dateigrößen) |
| Transparenz | 100% bitgenaue, verlustfreie Datenaufbewahrung |
| Streaming & Progressiv | Sequenzielles Block-für-Block-Streaming mit unabhängigen CRC-Prüfsummen pro Block |
Technischer Vergleich: BZ2 im Vergleich zu Wettbewerbern
| Technisches Attribut | BZ2 (Aktuell) | GZ | XZ | ZSTD |
|---|---|---|---|---|
| Kernalgorithmus | Burrows-Wheeler-Transformation (BWT) | Entleeren (LZ77 + Huffman) | LZMA / LZMA2 | Endzustandsentropie + LZ77 |
| Komprimierung vs. Gzip | 10% - 20% kleiner als Gzip | Basisstandard | 20% - 30% kleiner als Gzip | 10% - 20% kleiner als Gzip |
| Dekomprimierungsgeschwindigkeit | Langsam (~30-50 MB/s) | Schnell (~300 MB/s) | Moderat (~100 MB/s) | Blitzschnell (>1,5 GB/s) |
| Block-Prüfsummen | 32-Bit-CRC pro Block | Einzelstrom-CRC32 | Stream-CRC64 | Stream-xxHash64 |
Häufige Korruptionsarten & Hex-Wiederherstellungsleitfaden
Extraktion bricht mit „bzip2: Data integrity error when decompressing" ab.
Ursache: Gekipptes Bit im komprimierten Block, wodurch die inverse BWT-Permutationsmatrix bei der CRC32-Validierung fehlschlägt.
Wiederherstellung: Verwenden Sie das Dienstprogramm „bzip2recover", um unbeschädigte Blöcke um den beschädigten Sektor herum zu retten.
Sicherheitsanalyse & Parser-Angriffsvektore
Bzip2-Implementierungen beinhalten komplexe Bitstream-Sortierungen und Huffman-Tabellenanalysen, bei denen es in der Vergangenheit zu Ganzzahlüberlauffehlern kam.
Bekannte Angriffsvektore
- Ganzzahlüberlauf bei der BWT-Sortierarray-Zuweisung (z. B. CVE-2016-3189).
- Schreiben außerhalb der Grenzen während des Aufbaus der Huffman-Dekodierungstabelle.
- Diensteverweigerung (Denial of Service) durch pathologische Eingabemuster, die quadratische BWT-Sortierzeiten im Worst-Case verursachen.
Bewährte Sicherheitsverfahren: Dekodieren Sie BZ2-Dateien mit speichersicheren WASM-Dekodern mit erzwungenen Speicherbegrenzungen.
Historische Ursprünge & Meilensteine
Hauptvorteile & Stärken
- Übertrifft klassisches Gzip bei Quellcode-Tarballs, Systemprotokollen und Textdatenbanken durchgehend um 10% bis 20%.
- Die unabhängige Blockarchitektur (100k bis 900k) enthält 32-Bit-CRC-Prüfsummen pro Block für robuste Integritätsprüfungen.
- Universelle, native Verfügbarkeit über alle Linux-, BSD- und macOS-Kommandozeilen-Distributionen hinweg.
Technische Einschränkungen & Nachteile
- Deutlich langsamere Komprimierungs- und Dekomprimierungsgeschwindigkeiten im Vergleich zu modernen Algorithmen wie Zstandard.
- Nur Einzeldateikomprimierung: erfordert die Kopplung mit TAR (.tar.bz2), um mehrere Dateien oder Verzeichnisse zu packen.
- Höhere CPU-Auslastung bei der Dekomprimierung als Gzip oder Zstd.
Interessante technische Wissenswertes
- Die „BZh"-Magic-Bytes stehen für „Burrows-Wheeler Zip Huffman", gefolgt von einer Ziffer („1" bis „9"), die die Blockgröße in Hundert Kilobyte angibt (z. B. „BZh9" = 900 KB).
- Der Quellcode des Linux-Kernels wurde über ein Jahrzehnt lang ausschließlich im .tar.bz2-Format vertrieben, bevor er zu .xz migrierte.
- Die Burrows-Wheeler-Transformation komprimiert Daten nicht direkt; sie permutiert die Reihenfolge der Zeichen, sodass identische Buchstaben zusammenklumpen, wodurch sie durch Huffman-Codierung trivial komprimierbar werden.
Häufig gestellte technische Fragen
Was ist der Unterschied zwischen .gz und .bz2?
.bz2 verwendet die Burrows-Wheeler-Transformation, um kleinere Dateigrößen als .gz zu erreichen, benötigt jedoch mehr Zeit für die Komprimierung und Dekomprimierung.
Warum hat bzip2 einen Befehl „bzip2recover"?
Da bzip2 Daten in unabhängigen 900-KB-Blöcken komprimiert, von denen jeder über einen eigenen CRC verfügt, kann bzip2recover unbeschädigte Blöcke extrahieren, selbst wenn ein Teil der Datei beschädigt ist.
Wie kann ich eine .tar.bz2-Datei extrahieren?
Sie können .tar.bz2-Dateien ohne Befehlszeilentools direkt in Ihrem Webbrowser mit File2File.app entpacken.