分析と広告のためのCookie
分析と広告のためにCookieを使っており、どちらもGoogleに送られます。拒否しても、目に見える動作は何も変わりません。プライバシーポリシーを読む
ここで XZ を BZ2 に変換できます。無料、アカウント不要です。ファイルを上の枠に落とせば、数秒で結果がダウンロードできる状態になります。 ファイルは暗号化されて当方のサーバーへ送られ、そこで変換され、処理が終わり次第削除されます。
一度に100ファイルまで。フォーマットが混ざっていても構いません。
順番に変換し、まとめてZIPでダウンロードします。
XZ から BZ2
この変換には一つだけ正当な理由があり、一般的なフォーマット比較とは逆の結論になります。XZ の展開は辞書サイズに見合ったバッファーを確保する必要があり、この形式の辞書は最大 64 MB に達することがあります。ノートパソコンなら気にもなりませんが、ファームウェアを書き込むルーター、32 MB のメモリー制限を持つコンテナ、レスキューシェル、保守的なプロセス上限を持つ古い商用 Unix では、それがアーカイブを開けるかどうかを分ける差になります。
もう一つのよくある事情は、そもそも xz コマンド自体が入っていないという場合です。xz は 2009 年に登場した比較的新しい形式で、長く使われている機器や産業用コントローラー、固定されたビルドイメージには bzip2 と gzip しか入っていないことがあります。バイナリを追加すること自体が許されない状況では、アーカイブを変換するほうが現実的な選択になります。
2009 年生まれの XZ は LZMA2 という、最大 64 MB の辞書を持つスライディングウィンドウ方式の圧縮です。一億バイト目を圧縮している最中でも三千六百万バイト目を参照でき、アーカイブの末尾と先頭の類似を見つけられます。展開する側は、参照がどこを指しているか分からない以上、同じ大きさの窓を確保しておく必要があります。
1996 年生まれの BZ2 はスライドしません。入力を最大 900 KB のブロックに区切り、それぞれをバロウズ・ホイーラー変換で並べ替えてから符号化します。ブロックは自己完結しているため、展開する側は一つのブロックだけを保持すれば足ります。圧縮率で劣るのも、展開に必要なメモリーが小さいのも、同じ設計上の判断から来ている表裏の性質です。
ソースツリーや文書、ログファイルのように、構造が繰り返し現れる内容では、XZ が見つけていた冗長性を BZ2 は見つけられず、目に見えて大きくなります。これはメモリー削減と引き換えに払う代償で、避ける方法はありません。
一方、写真や動画、音声、すでに圧縮されたデータベースのダンプが中身であれば、この差はほとんど消えます。両方とも見つけられるものがそもそも少ないためです。変換する前に、両方のサイズを比べてから次の判断をする価値があります。
弱い形式のほうがすべての面で速いと考えがちですが、そうはなりません。XZ は 64 MB の辞書を探索するため圧縮が遅く、参照をたどるだけの展開は比較的速く済みます。BZ2 はその逆で、バロウズ・ホイーラー変換を元に戻すのは実質的な計算量を伴うため、展開が遅くなります。
これは変換の目的を一部打ち消す事実でもあります。制約のある機器はメモリーが少なく、たいてい処理能力も低いため、時間のほうがかえって長くかかることがあります。メモリーは不可能を生む制約で、時間は面倒を生む制約です。前者が問題なら変換し、後者については誰かに約束する前に必ず測っておいてください。
どちらも単一ストリームの圧縮器で、ファイルという概念を持ちません。ディレクトリ構造を持たないという弱点は両方に共通していて、そのために両方ともたいてい TAR を中に入れた状態で見つかります。この変換は XZ の中の tarball を展開し、新しい tarball にまとめ直してから bz2 で圧縮します。
どちらの形式も元のファイル名を記録しません。gzip はそれを記録しますが、この二つは記録しないため、ダウンロードしたファイルに付ける拡張子だけが唯一のラベルになります。.tar.bz2 と名付けておくのが確実です。
メモリーの少なさが主な理由ですが、それに加えて bzip2 のブロックは互いに独立しているため、破損したファイルからでも壊れていないブロックの部分を救い出せる可能性があります。途中で切れた XZ ストリームは、その先が読めなくなることが多いのとは対照的です。
これはバックアップ戦略ではなく、あくまで失敗の仕方がましだというだけの話です。中の TAR は連続したストリームなので、一部のブロックを救えても穴の空いた tarball になり、何が取り出せるかは損傷の位置次第です。それでも、電源が予告なく落ちるような環境では意味のある違いです。
XZ を離れる理由がメモリーやコマンドの不在であれば、gzip はその両方をより少ない時間で解決します。必要な窓は 32 KB だけで、ほとんどあらゆる機器に最初から入っていて、処理能力の低いプロセッサーでの展開も bzip2 よりずっと速く終わります。犠牲になるのは圧縮率だけで、しかも bzip2 より大きく犠牲にします。
bzip2 を選ぶ理由が残るのは、gzip との差が転送量やフラッシュ容量の予算に実際に効く場合で、かつ展開にかかる余分な時間が許容できる場合に限られます。それが当てはまらないなら gzip のほうが適していて、その変換もこのサイトで用意されています。
ブラウザーではなくサーバー上で行われます。このサイトの多くの変換は端末の中で完結しますが、アーカイブの再圧縮は 7-Zip と bzip2 という実際のプログラムを必要とする例外です。ファイルは暗号化された通信でコンテナへ送られ、そのコンテナはインターネットに出られません。
ジョブごとにメモリー上の作業領域が用意され、終了時に削除されます。60 秒を超えたジョブは強制終了されます。無料枠は 1 ファイルあたり 25 MB で、展開後のサイズが 2 GB を超えると宣言されているアーカイブは、展開前に拒否されます。
意味のある確認は、実際に xz が開けなかった機器やコンテナで行うことだけです。自分の作業用パソコンで試しても、両方とも問題なく開くはずなので何も分かりません。
BZ2 も開けなければ、それも導入の前にファイル転送のコストだけで分かったことになります。ロスレスの再圧縮なので、中身が食い違うことは基本的にありません。ただしディレクトリ構造の有無のような表層的な差は起こり得るので、一覧を照合してから元の XZ を削除してください。
| XZ | BZ2 | |
|---|---|---|
| 正式名称 | XZ アーカイブ | Bzip2 アーカイブ |
| 拡張子 | .xz | .bz2 |
| メディアタイプ | application/x-xz | application/x-bzip2 |
| 圧縮方式 | 可逆 — 何も捨てない | 可逆 — 何も捨てない |
| 最初の公開 | 2009 | 1996 |
| ライセンス | オープン標準 | オープン標準 |
| 現在の位置づけ | 現行 | 旧式、ただし今もどこでも読める |
| ブラウザで開けるか | 対応なし | 対応なし |
| 代わりに検討される形式 | GZ, 7Z | GZ |
失われるものはありません。XZ も BZ2 も中身を劣化なしに保持します。この変換が変えるのは包み方であって品質ではないので、劣化が積み重なる心配をせずに何度でも繰り返せます。
7-ZipとKekaは XZ と BZ2 のどちらも読めるので、別のプログラムを開かずに、結果を元のファイルと並べて確かめられます。
BZ2 が一度に扱う範囲は 900 KB、XZ は 8 MB です。繰り返しがこの幅の中に収まっていて初めて、それを圧縮で畳めます。圧縮率の差はそこから来ます。そしてだからこそ、2 つのうち速いのはこちらです。
BZ2 は 1996 年から使われています。bzip2、7-Zip、Kekaがこの形式を読めます。
はい。この変換には、ブラウザーの中では動かないソフトウェアが必要です。ファイルは暗号化されて当方のサーバーへ送られ、処理が終わり次第削除されます。結果のファイルも 60 分後に削除されます。
はい。25 MB までのファイルなら 1 日 100 回まで無料です。この変換だけは当方が費用を負担するサーバーで動くため、ここに上限があります。それ以外に制限はなく、透かしはどの場合も入りません。
いいえ。BZ2 は同じ内容を何も捨てずに保持できるので、結果は品質の点で元のファイルと同じです。 ファイルは 1 バイトも変わらずに出てきます。失われるのは、容れ物が中身として持っていたものではなく、中身について持っていたもの——パスワードや、形式によっては元のアクセス権と日時です。
失われるものはありません。XZ も BZ2 も中身を劣化なしに保持します。この変換が変えるのは包み方であって品質ではないので、劣化が積み重なる心配をせずに何度でも繰り返せます。