Arsip BZIP2 (.bz2)
Bzip2 StandarBzip2 (BZ2) adalah utilitas kompresi dan format file Unix klasik yang bebas paten dan dibuat oleh Julian Seward, menggunakan transformasi Burrows-Wheeler untuk mencapai kompresi yang jauh lebih padat daripada Gzip klasik.
Periksa & Metadata
Sistem operasi dan penganalisis file mengidentifikasi file BZ2 dengan memeriksa urutan byte biner utama:
Tanda Tangan Header Tingkat-Byte (Magic Bytes)
Sistem operasi dan penganalisis file mengidentifikasi file BZ2 dengan memeriksa urutan byte biner utama:
SIGNATURE HEX (OFFSET 0):
42 5A 68REPRESENTASI ASCII: BZh
Standardisasi: Bzip2 Open Source Standard
Spesifikasi Teknis
| Arsitektur Wadah | Stream header ('BZh' + block size digit 1-9) followed by compressed data blocks and 32-bit CRC |
| Kompresi | Burrows-Wheeler Transform (BWT), Move-to-Front (MTF) transform, and Huffman coding |
| Endianness Byte | Big-Endian bitstream framing |
| Ruang Warna | N/A (Byte Compression Stream) |
| Saluran & Struktur | Single-file compressed byte stream |
| Dimensi Maks | Unbounded stream length (supports arbitrary file sizes) |
| Transparansi | 100% bit-exact lossless data preservation |
| Streaming & Progresif | Sequential block-by-block streaming with independent per-block CRC checksums |
Matriks Perbandingan Teknis: BZ2 vs Pesaing
| Atribut Teknis | BZ2 (Saat Ini) | GZ | XZ | ZSTD |
|---|---|---|---|---|
| Algoritma Utama | Transformasi Burrows-Wheeler (BWT) | Mengempiskan (LZ77 + Huffman) | LZMA / LZMA2 | Entropi Keadaan Terbatas + LZ77 |
| Kompresi vs Gzip | 10% - 20% lebih kecil dari Gzip | Standar dasar | 20% - 30% lebih kecil dari Gzip | 10% - 20% lebih kecil dari Gzip |
| Kecepatan Dekompresi | Lambat (~30-50 MB/s) | Cepat (~300 MB/s) | Sedang (~100 MB/s) | Sangat cepat (>1.5 GB/s) |
| Checksum Blok | CRC 32-bit per blok | CRC32 aliran tunggal | Aliran CRC64 | Aliran xxHash64 |
Mode Kerusakan Umum & Panduan Pemulihan Hex
Ekstraksi dibatalkan dengan pesan 'bzip2: Data integrity error when decompressing'.
Penyebab Utama: Bit terbalik pada blok terkompresi yang menyebabkan matriks permutasi invers BWT gagal dalam validasi CRC32.
Pemulihan: Gunakan utilitas 'bzip2recover' untuk menyelamatkan blok yang tidak rusak di sekitar sektor yang rusak.
Analisis Keamanan & Vektor Serangan Parser
Implementasi Bzip2 melibatkan pengurutan bitstream yang rumit dan penguraian tabel Huffman yang secara historis mengalami kelemahan limpahan bilangan bulat (integer overflow).
Vektor Serangan yang Diketahui
- Limpahan bilangan bulat dalam alokasi array pengurutan BWT (misalnya CVE-2016-3189).
- Penulisan di luar batas (out-of-bounds write) selama perakitan tabel penguraian Huffman.
- Penolakan layanan (DoS) melalui pola masukan patologis yang menyebabkan waktu pengurutan BWT terburuk yang bersifat kuadratik.
Praktik Terbaik Defensif:
Asal-Usul & Tonggak Sejarah
Keunggulan & Kelebihan Utama
- Secara konsisten mengungguli Gzip klasik sebesar 10% hingga 20% pada tarball kode sumber, log sistem, dan database teks.
- Arsitektur blok independen (100k hingga 900k) menyertakan checksum CRC 32-bit per blok untuk pemeriksaan integritas yang kuat.
- Ketersediaan asli universal di semua distribusi baris perintah Linux, BSD, dan macOS.
Keterbatasan Teknis & Kekurangan
- Kecepatan kompresi dan dekompresi jauh lebih lambat dibandingkan dengan algoritma modern seperti Zstandard.
- Kompresi file tunggal saja: memerlukan pasangan dengan TAR (.tar.bz2) untuk mengemas beberapa file atau direktori.
- Penggunaan CPU yang lebih tinggi selama dekompresi daripada Gzip atau Zstd.
Fakta Teknis Menarik
- Byte ajaib 'BZh' adalah singkatan dari 'Burrows-Wheeler Zip Huffman', diikuti oleh digit ('1' hingga '9') yang menunjukkan ukuran blok dalam ratusan kilobyte (misalnya 'BZh9' = 900 KB).
- Kode sumber Kernel Linux didistribusikan secara eksklusif dalam format .tar.bz2 selama lebih dari satu dekade sebelum migrasi ke .xz.
- Transformasi Burrows-Wheeler tidak mengompresi data secara langsung; transformasi ini mengurutkan ulang urutan karakter sehingga huruf yang sama menggumpal, membuatnya mudah dikompresi melalui pengodean Huffman.
Pertanyaan Teknis yang Sering Diajukan
Apa perbedaan antara .gz dan .bz2?
.bz2 menggunakan transformasi Burrows-Wheeler untuk mencapai ukuran file yang lebih kecil daripada .gz, tetapi proses kompresi dan dekompresinya memakan waktu lebih lama.
Mengapa bzip2 memiliki perintah 'bzip2recover'?
Karena bzip2 mengompresi data dalam blok 900 KB independen yang masing-masing memiliki CRC sendiri, bzip2recover dapat mengekstrak blok yang tidak rusak meskipun sebagian file mengalami korupsi.
Bagaimana cara mengekstrak file .tar.bz2?
Anda dapat membongkar file .tar.bz2 langsung di peramban web Anda dengan File2File.app tanpa perlu menjalankan alat baris perintah.