BZIP2-arkisto (.bz2)
Bzip2 StandardiBzip2 (BZ2) on klassinen, patenttivapaa Unix-pakkaustyökalu ja tiedostomuoto, jonka loi Julian Seward. Se hyödyntää Burrows-Wheeler-muunnosta saavuttaakseen huomattavasti tiiviimmän pakkauksen kuin perinteinen Gzip.
Tarkastele tiedostoa ja sen metatietoja
Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat BZ2-tiedostot tarkistamalla tiedoston alun binäärisarjan:
Otsaketunniste tavutasolla (tunnistetavut)
Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat BZ2-tiedostot tarkistamalla tiedoston alun binäärisarjan:
HEKSADEKSIMAALINEN TUNNISTE (SIJAINTI 0):
42 5A 68ASCII-ESITYSTAPA: BZh
Standardointi: Bzip2 Open Source Standard
Tekniset tiedot
| Säiliöarkkitehtuuri | Tietovirran otsake (”BZh” ja lohkokoon numero 1-9), jota seuraavat pakatut datalohkot ja 32-bittinen CRC-tarkistussumma |
| Pakkaus | Burrows-Wheeler-muunnos (BWT), Move-to-Front-muunnos (MTF) ja Huffman-koodaus |
| Tavujärjestys (Endianness) | Big-Endian-bittivirran kehystys |
| Väriavaruudet | Ei sovellu (tavujen pakkausvirta) |
| Kanavat ja rakenne | Yhden tiedoston pakattu tavujono |
| Suurimmat mitat | Rajoittamaton virran pituus (tukee mielivaltaisen kokoisia tiedostoja) |
| Läpinäkyvyys | Häviötön, tavu tavulta täsmälleen palautuva datan säilytys |
| Suoratoisto ja progressiivinen lataus | Peräkkäinen lohkojen suoratoisto; jokaisella lohkolla on oma CRC-tarkistussumma |
Tekninen vertailumatriisi: BZ2 vs. kilpailijat
| Tekninen attribuutti | BZ2 (Nykyinen) | GZ | XZ | ZSTD |
|---|---|---|---|---|
| Ydinalgoritmi | Burrows-Wheeler-muunnos (BWT) | Deflate (LZ77 + Huffman) | LZMA / LZMA2 | Äärellisen tilan entropia + LZ77 |
| Pakkaus Gzipiin verrattuna | 10-20 % pienempi tiedostokoko kuin Gzipillä | Perustaso | 20-30 % pienempi tiedostokoko kuin Gzipillä | 10-20 % pienempi tiedostokoko kuin Gzipillä |
| Purkunopeus | Hidas (noin 30-50 Mt/s) | Nopea (noin 300 Mt/s) | Kohtalainen (noin 100 Mt/s) | Erittäin nopea (yli 1,5 Gt/s) |
| Lohkon tarkistussummat | Lohkokohtainen 32-bittinen CRC | Yhden virran CRC32 | Virran CRC64 | Virran xxHash64 |
Yleiset vioittumistavat ja heksadesimaalinen palautusopas
Purkaminen keskeytyy virheilmoitukseen 'bzip2: Data integrity error when decompressing'.
Perussyy: Kääntynyt bitti pakatussa lohkossa aiheuttaa BWT:n käänteispermutaatiomatriisin CRC32-varmennuksen epäonnistumisen.
Korjaus: Käytä 'bzip2recover'-työkalua vahingoittumattomien lohkojen pelastamiseen turmeltuneen sektorin ympäriltä.
Tietoturva-analyysi ja tiedostojäsentimien hyökkäysvektorit
Bzip2-toteutukset sisältävät monimutkaista bittivirran lajittelua ja Huffman-taulukoiden jäsennystä, joissa on historiallisesti esiintynyt kokonaislukujen ylivuotovikoja.
Tunnetut hyökkäysvektorit
- Kokonaisluvun ylivuoto BWT-lajittelutaulukon varauksessa (esim. CVE-2016-3189).
- Puskurin ulkopuolinen kirjoitus Huffman-purkutaulukon muodostuksen aikana.
- Palvelunestohyökkäys patologisten syötteiden kautta, jotka aiheuttavat pahimman tapauksen neliölliset BWT-lajitteluajat.
Tietoturvan parhaat käytännöt: Pura BZ2-tiedostot muistiturvallisilla WASM-dekoodereilla, joissa on valvotut muistirajat.
Historia ja virstanpylväät
Tärkeimmät edut
- Pakkaa johdonmukaisesti 10-20 % pienemmäksi kuin perinteinen Gzip lähdekooditarhoissa, järjestelmälokeissa ja tekstitietokannoissa.
- Itsenäinen lohkoarkkitehtuuri (100-900 kt) sisältää lohkokohtaiset 32-bittiset CRC-tarkistussummat luotettavaa eheystarkistusta varten.
- Sisältyy valmiina moniin Linux-, BSD- ja macOS-jakeluihin; mukanaolo vaihtelee jakelun mukaan.
Tekniset rajoitukset
- Pakkaus ja purkaminen ovat huomattavasti hitaampia kuin nykyaikaisilla algoritmeilla, kuten Zstandardilla.
- Vain yhden tiedoston pakkaus: edellyttää yhdistämistä TAR-tiedoston kanssa (.tar.bz2) useiden tiedostojen tai hakemistojen paketoimiseksi.
- Korkeampi suorittimen käyttöaste purun aikana kuin Gzipillä tai Zstd:llä.
Mielenkiintoisia teknisiä faktoja
- BZh-taikamerkit tulevat sanoista 'Burrows-Wheeler Zip Huffman', joita seuraa numero ('1' - '9'), joka ilmaisee lohkon koon sadoissa kilotavuissa (esim. 'BZh9' = 900 kt).
- Linux-ytimen lähdekoodia jaettiin yksinomaisesti .tar.bz2-muodossa yli vuosikymmenen ajan ennen siirtymistä .xz-muotoon.
- Burrows-Wheeler-muunnos ei pakkaa dataa suoraan; se järjestelee merkkien järjestyksen uudelleen niin, että samanlaiset kirjaimet kasaantuvat yhteen.
Usein kysytyt tekniset kysymykset
Mitä eroa on .gz- ja .bz2-tiedostoilla?
.bz2 käyttää Burrows-Wheeler-muunnosta saavuttaakseen .gz-tiedostoja pienemmän koon, mutta sen pakkaaminen ja purkaminen kestää kauemmin.
Miksi bzip2-ohjelmassa on 'bzip2recover'-komento?
Koska bzip2 pakkaa tietoa itsenäisissä 900 kt:n lohkoissa, joilla jokaisella on oma CRC-tarkistussummansa, bzip2recover pystyy poimimaan vahingoittumattomia lohkoja, vaikka osa tiedostosta olisi vioittunut.
Miten voin purkaa .tar.bz2-tiedoston?
Voit purkaa .tar.bz2-tiedostot suoraan verkkoselaimessasi File2File.app-palvelulla ilman komentorivityökalujen käyttöä.