XZ ファイル形式とは?
.xz は、XZ 圧縮方式を使用した圧縮アーカイブファイル形式です。この形式は、The Tukaani Project(Slackware ベースの GNU/Linux ディストリビューション)の一部として開発されたリファレンスソフトウェアツールである XZ Utils のネイティブ形式です。
XZ と TAR
.xz アーカイブは単一の圧縮ストリームのみを保存でき、独自のディレクトリツリーを持ちません。そのため、.xz ファイルは通常 TAR アーカイブ と組み合わせて使用されます。TAR が選択したファイルを単一のアーカイブにまとめ、その後に XZ アルゴリズムを適用して圧縮します。その結果、ファイルには拡張子 .tar.xz または .txz が付きます。
LZMA2 圧縮アルゴリズム
XZ 圧縮は、オリジナルの LZMA 標準の進化形である LZMA2 アルゴリズムに基づいています。これにより高い圧縮率が可能になり、ファイルサイズを大幅に削減できます。XZ アーカイブは通常、GZIP よりも 30% 小さく、BZIP2 アーカイブよりも 15% 小さくなります。XZ は情報の損失を防ぐためにロスレス圧縮を提供します。
補足事項
- 他の圧縮方法と比較して、XZ の圧縮プロセスはかなり低速ですが、展開(解凍)は大幅に高速です。
- XZ アーカイブは、Slackware やほとんどの主要なカーネルソースのタールボールを含む、Linux ソフトウェアパッケージの配布に広く使用されています。
.xz形式は、固定の 6 バイトのヘッダーマジックFD 37 7A 58 5A 00で識別され、デフォルトでブロックごとおよびストリームごとの CRC64 チェックサムを使用して整合性を検証します(CRC32 および SHA-256 もサポートされています)。- 2024 年初頭、XZ Utils のバージョン 5.6.0 および 5.6.1 の
liblzmaライブラリに、意図的に注入されたバックドア(CVE-2024-3094)が含まれていることが判明しました。.xzファイル形式の仕様自体は影響を受けません。それらの特定のビルドタールボールのみが侵害されました。
セキュリティと安全性
リスク: LOW.xz 形式には実行可能コードが含まれておらず、「実行」することはできません。リスクは中身にのみ依存します(信頼する前に展開してください)。2024 年のサプライチェーン攻撃(CVE-2024-3094)に注意してください。一部のディストリビューションのテストチャネルで配布された xz 5.6.0/5.6.1 の liblzma ビルドにバックドアが挿入されました。これはツールやライブラリのバイナリに影響するもので、受信した .xz ファイル自体に影響するものではありません。アドウェアを同梱している偽の「xz オープナー」ダウンロードサイトに注意し、7-Zip や PeaZip は公式サイトから入手してください。
形式の詳細
概要XZ ファイルを開くプログラム
tar -xf file.tar.xz を実行するか(macOS の bsdtar は xz を処理可能)、Homebrew 経由で xz をインストールします。 xz -d file.xz、タールボールには tar -xf file.tar.xz を使用します。ほとんどのディストリビューションにプリインストールされています。 技術的詳細
詳細仕様| 圧縮アルゴリズム | LZMA2(LZMA の進化形)。デルタおよび BCJ(branch/call/jump)フィルタを備えたオプションのフィルタチェーン |
| コンテナ構造 | ストリームヘッダー → 1 つ以上の圧縮ブロック → ブロックインデックス → ストリームフッター |
| ストリームヘッダーマジック | FD 37 7A 58 5A 00 - オフセット 0 の固定 6 バイト |
| ストリームフッターマジック | 59 5A («YZ») - 常にすべての .xz ストリームの最後の 2 バイト |
| バイト順序 | リトルエンディアン |
| MIME タイプ | application/x-xz |
| 整合性チェック | ブロックごとおよびストリームごとのチェックサム。デフォルトは CRC64。CRC32 および SHA-256 もサポート |
| 暗号化 | なし - 組み込みの暗号化はありません。必要な場合は圧縮前にデータを暗号化してください |
| ファイルストレージ | 単一の圧縮ストリームのみ。ファイル名やディレクトリツリーは保持しません(複数ファイルのアーカイブには .tar と組み合わせます) |
| エンコーディング | バイナリ |
| 典型的な圧縮サイズ | 数十 KB から数 GB。Linux カーネルソースのタールボールは通常 50-200 MB |
| 代替形式との圧縮率比較 | ソースコードにおいて、通常 gzip より約 30% 小さく、bzip2 より約 15% 小さい |
| セキュリティに関する注意 | CVE-2024-3094: XZ Utils 5.6.0/5.6.1 のタールボールに liblzma のバックドアが含まれていました。.xz ファイル形式の仕様は影響を受けません |
| プラットフォームのサポート | Linux, BSD, macOS, Windows (XZ Utils, 7-Zip, PeaZip, NanaZip, The Unarchiver 経由) |
| リリース日 | 2009 (XZ Utils 4.999.x / 5.0; format finalized 2009) |
| 最新バージョン | XZ file format 1.0.4 (2009); XZ Utils 5.6.x toolchain |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | tukaani.org |
XZ の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。XZ ファイルについて最初の質問をしてみましょう。
よくある質問
Windows で .xz ファイルを開くにはどうすればよいですか?
.xz と .tar.xz の違いは何ですか?
.xz は .gz や .zip よりも優れていますか?
xz ファイル形式は xz バックドア(CVE-2024-3094)の影響を受けますか?
Linux で .xz を展開するにはどうすればよいですか?
xz -d file.xz を、タールボールを解凍するには tar -xf file.tar.xz を使用します。xz はほとんどのディストリビューションにプリインストールされています。