BZ2 ファイル形式とは?
.bz2 は、bzip2 ユーティリティによって生成される 圧縮ファイル形式 です。完全なアーカイブとは異なり、単一のファイルまたはデータストリームのみを圧縮します。複数のファイルをパッケージ化する必要がある場合は、まず TAR アーカイブ にまとめられ、その後まとめて圧縮されます。これにより、Linux ディストリビューションやオープンソースプロジェクトでよく見られる .tar.bz2(または .tbz2)パッケージが作成されます。
.bz2 ファイルにはどのようなデータが含まれていますか?
.bz2 ファイルは、一連のロスレス(無損失)アルゴリズムを使用してデータを保存します:
- ブロックソート法 (BWT) - データブロックを並べ替えて、繰り返されるバイトシーケンスをクラスター化します
- MTF (Move-to-front) 変換 - BWT によって生成された局所性を利用します
- ランレングス符号化 (RLE) - 連続する同一バイトを圧縮します
- ハフマン符号化 - 結果として得られるシンボルストリームをエントロピー符号化します
ブロックサイズは 100 KB から 900 KB の範囲で、圧縮時に選択されます。デフォルトの bzip2 コマンドは 900 KB のブロックを使用します(ファイルシグネチャ BZh9)。各ブロックには独自の CRC-32 チェックサムがあり、さらにファイル全体をカバーするストリームレベルの CRC があります。bzip2recover ユーティリティを使用すると、部分的に破損したアーカイブから無傷のブロックを救出できます。
Unix 系システムでの .bz2
.bz2 ファイルは通常、Linux、macOS、およびその他の Unix 系環境で見られ、そこでは bzip2 と bunzip2 が標準の CLI ツールです。この形式は、これらのプラットフォームでソフトウェアのソースコードを配布するために広く使用されています。
Windows のサポート
Windows では、.bz2 ファイルは 7-Zip、WinRAR、PeaZip などのツールでサポートされています。bzip2 ユーティリティ自体も、オープンソースの Windows ビルドとして利用可能です。.gz ファイルと比較すると、.bz2 は通常、テキストやソースコードに対してより優れた圧縮率を実現しますが、圧縮および展開の速度は遅くなります。.xz などの新しい形式は、現在、圧縮率と速度の両方で bzip2 を上回ることが多いですが、.tar.bz2 パッケージは依然としてオープンソースソフトウェアの配布で広く使用されています。.bz2 ファイルは、写真コレクションやドキュメントライブラリなど、さまざまなデータのバックアップコピーを作成するためにも使用できます。
セキュリティと安全性
リスク: LOWbzip2 形式はオープンで安全であり、.bz2 はそれ自体では実行できない単なる圧縮データです。通常のアーカイブに関する注意が適用されます。信頼できないソースからの .bz2/.tar.bz2 には、展開後にのみ明らかになる実行ファイルやスクリプトが含まれている可能性があるため、実行前に内容をスキャンしてください。2つの技術的な注意点:非常に小さな .bz2 が巨大に展開される「高圧縮爆弾」の可能性があるため、不自然に小さなアーカイブには注意してください。また、.tar.bz2 には «../» パス(パストラバーサル / «tar slip»)が含まれる可能性があるため、信頼できないターボールは空のフォルダに展開してください。現代の展開ツールは両方に対して防御策を備えています。
形式の詳細
概要BZ2 ファイルを開くプログラム
bunzip2 file.bz2。ターボール:tar -xjf file.tar.bz2。ほぼすべての Linux/Unix システムにプリインストールされています。 技術的詳細
詳細仕様| MIME タイプ | application/x-bzip2 (application/x-bzip, application/bzip2 も可) |
| マジックバイト | ファイルオフセット 0 に 42 5A 68 («BZh»)、続いてブロックサイズをエンコードする ASCII 数字 «1»-«9» (例: BZh9 = 900 KB ブロック) |
| エンコーディング | バイナリ - ビットパックされた圧縮ストリーム |
| 圧縮パイプライン | ブロックソート法 (BWT) → MTF 変換 → ランレングス符号化 → ハフマン符号化 (すべてロスレス段階) |
| ブロックサイズ | 100 KB (レベル 1) から 900 KB (レベル 9) まで選択可能。デフォルトは 900 KB。ブロックが大きいほど圧縮率は向上しますが、より多くの RAM を必要とします |
| メモリ使用量 | 圧縮時:ブロックサイズの約 10 倍。展開時:選択したブロックサイズに関係なく約 3.5 MB |
| 整合性チェック | 圧縮ブロックごとの CRC-32 チェックサムに加え、展開時に検証されるストリームレベルの結合 CRC |
| ブロックマーカー | 各 BWT ブロックは 48 ビットの円周率定数 0x314159265359 で始まり、bzip2recover が破損したファイル内のブロックを特定するために使用されます |
| コンテナモデル | 内部ファイル名テーブルやディレクトリ構造を持たないスタンドアロンの圧縮ストリーム。複数ファイルには TAR ラッパーが必要 |
| 並列圧縮 | 標準の bzip2 はシングルスレッドです。pbzip2 や lbzip2 は、マルチコアシステムでブロックレベルの圧縮を並列化します |
| ブロックリカバリ | bzip2recover が生のバイトから 48 ビットのブロックマーカーをスキャンし、無傷の各ブロックを個別の修復可能な .bz2 ファイルとして書き出します |
| gzip との圧縮率比較 | テキストやソースコードにおいて、通常 .gz より 10-15% 小さくなります。展開は 2-6 倍遅くなります |
| 関連プラットフォーム | Linux, macOS, Unix/BSD でネイティブ対応。Windows では 7-Zip, WinRAR, PeaZip 経由。bzip2 CLI はすべての主要システムで利用可能 |
| 一般的なユースケース | Linux/Unix ソースターボール (.tar.bz2)、ソフトウェア配布パッケージ、データベースダンプ、および圧縮されたログアーカイブ |
| リリース日 | 1996 (bzip 0.21); bzip2 1.0 released 2000 |
| 最新バージョン | bzip2 1.0.8 (2019); format itself unchanged |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | sourceware.org |
BZ2 の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。BZ2 ファイルについて最初の質問をしてみましょう。
よくある質問
BZ2 ファイルを開くにはどうすればよいですか?
bunzip2 file.bz2、ターボールなら tar -xjf file.tar.bz2 を実行します。.bz2 と .tar.bz2 の違いは何ですか?
BZ2 と GZ ではどちらが良いですか?
Windows で BZ2 ファイルを開くにはどうすればよいですか?
BZ2 ファイルが期待していた複数のファイルではなく、1つのファイルなのはなぜですか?
BZ2 ファイルを無料で作成できますか?
bzip2 や tar が組み込まれています。