Конвертер TXZ в TBZ2

Преобразуйте архив TXZ (TAR.XZ) в TBZ2 (TAR.BZ2) для совместимости со старыми Unix-системами без поддержки XZ

Без установки программ • Быстрая конверсия • Конфиденциально и безопасно

Шаг 1

Перетащите файлы или выберите

Вы можете конвертировать 3 файла до 10 МБ каждый

Шаг 1

Перетащите файлы или выберите

Вы можете конвертировать 3 файла до 10 МБ каждый

Что такое конвертация TXZ в TBZ2?

Конвертация TXZ в TBZ2 - это перепаковка архива со сменой алгоритма сжатия с современного XZ (LZMA2) на классический BZIP2 при сохранении внутреннего TAR-контейнера. Оба формата строятся по одной схеме - "архивация TAR + потоковое сжатие" - но различаются принципами сжатия. TXZ (TAR.XZ) появился в 2009 году, использует словарный алгоритм LZMA2 и стал стандартом современных Linux-дистрибутивов. TBZ2 (TAR.BZ2) был представлен в 1996 году Джулианом Сьюардом и применяет преобразование Барроуза-Уилера (BWT) совместно с кодированием Хаффмана. До массового внедрения XZ именно BZIP2 считался "тяжёлым" сжатием для Unix-окружений, превосходящим GZIP по плотности упаковки.

Основная причина перехода с TXZ на TBZ2 - совместимость со старыми Unix-системами и встраиваемыми устройствами, где утилита xz отсутствует или работает нестабильно. BZIP2 десятилетиями был частью базовых утилит UNIX-семейства, поэтому он встречается в любом дистрибутиве Linux 2000-х годов, в Solaris, AIX, HP-UX, FreeBSD старых версий, в minimal-сборках busybox. Если архив должен открываться на старом сервере, контроллере или встроенной системе - формат TBZ2 является более надёжным выбором, чем TXZ.

При конвертации TXZ распаковывается до исходного TAR-потока, после чего этот поток сжимается заново алгоритмом BZIP2. Содержимое архива не меняется, файлы остаются байт в байт идентичными, сохраняются структура каталогов, права доступа Unix, временные метки, владельцы. Меняется только степень сжатия: TBZ2 обычно даёт результат на 15-30% больше, чем TXZ, поскольку BWT уступает LZMA2 в эффективности на современных типах данных.

Технические различия форматов TXZ и TBZ2

Алгоритмы сжатия

TXZ использует LZMA2 - усовершенствованную версию алгоритма Лемпеля-Зива-Маркова. Принцип работы: алгоритм строит словарь длиной до нескольких гигабайт и ищет в нём повторяющиеся последовательности данных. Для каждого совпадения записывается компактная ссылка вместо самих данных. К результату применяется арифметический кодер с контекстной моделью, что даёт максимальное приближение к энтропии источника. Сжатие медленное, но распаковка относительно быстрая.

TBZ2 применяет BZIP2 - комбинацию преобразования Барроуза-Уилера (BWT), Move-to-Front (MTF) трансформации, Run-Length кодирования и кодирования Хаффмана. BWT переставляет байты во входном блоке так, чтобы похожие байты группировались рядом, после чего MTF и Хаффман эффективно сжимают результат. Размер блока ограничен - от 100 до 900 КБ. Алгоритм работает блоками независимо, что упрощает параллельную обработку (pbzip2), но не позволяет находить дальние повторения как LZMA2.

Сравнительная таблица возможностей

Характеристика TXZ TBZ2
Год создания 2009 (XZ) / 1979 (TAR) 1996 (BZIP2) / 1979 (TAR)
Базовый алгоритм LZMA2 (словарный) BZIP2 (BWT + Хаффман)
Размер блока/словаря до нескольких ГБ 100-900 КБ
Степень сжатия Лучшая для Unix На 15-30% хуже
Скорость сжатия Медленнее Медленнее
Скорость распаковки Быстрая Медленнее (CPU-нагрузка)
Параллельная обработка xz threading pbzip2
Возраст в репозиториях Современные дистрибутивы Все Unix десятилетиями
Подходит для long-term archive Да, лидер Да, классика

Размер архива: чего ожидать

Соотношение размеров TXZ и TBZ2 для типичных данных:

Тип данных Исходный размер TXZ TBZ2 Рост TBZ2
Исходный код проекта 100 МБ 12-15 МБ 16-20 МБ 30-35%
Текстовые документы 50 МБ 8-10 МБ 10-13 МБ 25-30%
Дамп SQL базы данных 200 МБ 20-30 МБ 26-38 МБ 25-30%
XML/JSON логи 1 ГБ 30-60 МБ 45-90 МБ 50%
Изображения JPG 500 МБ 495-498 МБ 496-499 МБ минимально
Видеофайлы MP4 1 ГБ 0.99-1 ГБ 0.99-1 ГБ минимально
Смешанный контент 250 МБ 100-150 МБ 130-180 МБ 20-25%

Преимущество TXZ заметнее всего на текстах и логах с большим количеством повторений на длинных дистанциях, так как словарь LZMA2 видит весь архив целиком. На однотипных небольших файлах разница менее выражена. На уже сжатых данных оба формата практически бесполезны.

Когда необходима конвертация TXZ в TBZ2

Поддержка устаревших Unix-систем

Главный сценарий, где TBZ2 остаётся актуальным:

  • Серверы и рабочие станции с устаревшей ОС - Linux-дистрибутивы 2000-х (RHEL 4, CentOS 5, Debian Lenny), Solaris 9-10, AIX 5, HP-UX 11i не имели поддержки XZ из коробки.
  • Встраиваемые системы - роутеры, IP-камеры, NAS, IoT-устройства часто построены на минимальных образах Linux без xz.
  • Промышленные контроллеры - SCADA-системы и АСУ ТП работают на проверенных временем дистрибутивах, где BZIP2 - стандартная утилита.
  • Восстановительные среды - многие LiveCD, rescue-диски и инсталляторы прошлых лет не включают xz.
  • Минимальные образы busybox - стандартные сборки имеют bzip2, но не xz.

Совместимость с архивными скриптами

В корпоративной среде существуют системы автоматизации, написанные годы или десятилетия назад:

  • Системы бэкапов на BZIP2 - корпоративные backup-скрипты, которые ждут именно tar.bz2 на входе.
  • CI/CD на старых билд-серверах - сборочные конвейеры, не обновлявшиеся годами.
  • Журналируемые архивы - системы хранения логов, рассчитанные на формат TBZ2.
  • Специализированные дистрибутивы - научные пакеты, образы для эмуляции старого ПО.

Случаи лучшего распараллеливания

В некоторых сценариях BZIP2 эффективнее благодаря независимым блокам:

  • Параллельная распаковка - утилита pbzip2 распаковывает блоки одновременно на нескольких ядрах.
  • Восстановление из частично повреждённых архивов - битая часть портит только один блок 100-900 КБ, остальные блоки читаются.
  • Потоковая обработка большого архива - блоки можно распаковывать порциями без удержания всего словаря в памяти.

Совместимость с библиотеками распаковки

Многие приложения и языки имеют поддержку BZIP2 в стандартных библиотеках:

  • Python - модуль bz2 в стандартной библиотеке, в отличие от lzma модуль был с самых ранних версий.
  • Ruby - класс Bzip2, более распространён чем поддержка XZ.
  • PHP - расширение bz2 включается в стандартные сборки.
  • Java - Apache Commons Compress поддерживает оба, но bzip2 лучше протестирован.
  • Старые версии libarchive, 7-Zip и WinRAR - имеют BZIP2 от рождения, XZ - в более новых версиях.

Процесс конвертации: что происходит с архивом

Этапы преобразования

  1. Чтение заголовка XZ - проверка магического числа, версии формата, размера словаря и метода контрольных сумм.

  2. Декодирование LZMA2 - алгоритм восстанавливает исходный TAR-поток. Память пропорциональна словарю (обычно 64-256 МБ).

  3. Проверка целостности - SHA-256 (или CRC32/CRC64) рассчитывается и сравнивается с заявленной в архиве.

  4. Анализ TAR-потока - формат TAR не меняется, его содержимое передаётся как есть на следующий этап.

  5. Кодирование BZIP2 - TAR-поток разбивается на блоки 100-900 КБ. Каждый блок проходит BWT-преобразование, затем MTF, RLE и Хаффман-кодирование. Накладные расходы CPU выше чем у DEFLATE/GZIP, но ниже чем у LZMA2 при сжатии.

  6. Запись BZIP2-контейнера - блоки записываются последовательно с заголовком "BZh" в начале файла, контрольной суммой CRC32 для каждого блока и общим CRC32 в конце потока.

  7. Финализация файла - архив получает расширение .tar.bz2 или .tbz2.

Что сохраняется без изменений

  • Все файлы внутри архива остаются байт в байт идентичными
  • Структура каталогов (TAR-заголовки не меняются)
  • Имена файлов, включая Unicode и длинные пути через PAX-расширение
  • Числовые UID и GID владельцев
  • Права доступа Unix (включая setuid, setgid, sticky)
  • Временные метки модификации, доступа и создания
  • Расширенные атрибуты xattr (если были в TXZ)
  • Символические и жёсткие ссылки

Что меняется

  • Алгоритм сжатия - LZMA2 заменяется на BZIP2
  • Размер архива - обычно увеличивается на 15-30%
  • Контрольные суммы - SHA-256 в XZ заменяется на CRC32 в BZIP2 (более слабая защита)
  • Структура контейнера - один поток XZ становится потоком BZIP2-блоков
  • Размер словаря/блока - до гигабайт в XZ против сотен килобайт в BZIP2

Сравнение TBZ2 с другими форматами

TBZ2 против TGZ

TGZ (TAR.GZ) использует алгоритм DEFLATE.

Критерий TBZ2 TGZ
Степень сжатия Высокая Средняя
Скорость распаковки Средняя Очень высокая
Использование CPU Заметное Минимальное
Возраст формата 1996 1992
Распространённость Высокая Максимальная

TBZ2 жертвует скоростью ради лучшего сжатия по сравнению с TGZ.

TBZ2 против TXZ

Прямое сравнение двух "тяжёлых" форматов Unix:

Критерий TBZ2 TXZ
Алгоритм BWT LZMA2
Степень сжатия Базовая для тяжёлых На 15-30% лучше
Скорость распаковки Медленнее Быстрее
Поддержка в старых системах Повсеместная Ограниченная
Размер словаря 900 КБ до нескольких ГБ

TXZ - современный лидер по сжатию, TBZ2 - проверенная классика для старых систем.

TBZ2 против ZIP

Критерий TBZ2 ZIP
Архивация и сжатие TAR + BZIP2 В одном формате
POSIX-атрибуты Полная поддержка Ограниченная
Доступ к файлу Последовательный По оглавлению
Поддержка ОС "из коробки" Только Unix Все ОС

ZIP лучше для пользователей Windows, TBZ2 - для Unix-серверов.

Совместимость и поддержка TBZ2

Операционные системы

TBZ2 работает в любой Unix-системе и в большинстве не-Unix:

  • Linux - bzip2 - стандартная утилита базовых репозиториев в любом дистрибутиве с конца 1990-х.
  • macOS - bzip2 встроен в систему, доступен из Terminal без установки.
  • FreeBSD, OpenBSD, NetBSD - часть базовой системы.
  • Solaris, AIX, HP-UX - bzip2 присутствует с начала 2000-х.
  • Windows - 7-Zip, WinRAR, Bandizip распаковывают TBZ2 без дополнительных настроек.
  • Android, iOS - через приложения вроде ZArchiver и Documents by Readdle.
  • Встраиваемые Linux - busybox со включённым bzip2 в большинстве сборок.

Поддержка в языках программирования

Язык Стандартная поддержка
Python Модуль bz2
Java java.util.zip + Apache Commons Compress
C / C++ libbzip2
Ruby Bzip2
Perl Compress::Bzip2
PHP Расширение bz2
Go compress/bzip2 (только распаковка в стандартной)

Это делает BZIP2 удобным форматом для серверной автоматизации в смешанных окружениях.

История и устойчивость формата

  • 1996 - Джулиан Сьюард опубликовал bzip2 в свободном доступе
  • 1999 - bzip2 стал стандартом в большинстве дистрибутивов Linux
  • 2002 - распространение pbzip2 для параллельной обработки
  • 2010 - формат стабилизирован, редко обновляется
  • 2019 - выпуск bzip2 1.0.8 после длительного перерыва

За 30 лет существования BZIP2 не имел критичных изменений формата, что обеспечивает долгосрочную совместимость.

Ограничения и альтернативы

Когда конвертация в TBZ2 не оптимальна

  • Современные дистрибутивы Linux - в Arch, Fedora, Ubuntu стандартом стал XZ, и понижение до BZIP2 не даёт выгод.
  • Архивы для долгого хранения - TXZ компактнее, целостность защищена SHA-256 (в BZIP2 только CRC32).
  • Большие архивы с однотипным содержимым - LZMA2 заметно эффективнее при наличии длинных повторений.
  • Дистрибуция через современные пакетные менеджеры - apt, dnf, pacman ждут TAR.XZ, переход на TBZ2 потребует ручной обработки.

Альтернативные сценарии

Если совместимость со старыми системами не нужна:

  • TXZ -> TGZ - для случаев, когда нужна быстрая распаковка вместо сжатия
  • TXZ -> ZIP - для смешанных аудиторий, включая Windows
  • TXZ -> 7Z - для лучшего сжатия с навигацией по архиву

Для большинства задач сегодня TBZ2 уже не лучший выбор, но в нишевых сценариях совместимости со старыми Unix-системами он остаётся незаменимым.

Для чего используют конвертацию TXZ в TBZ2

Поддержка старых серверов

Доставка архивов на Linux-системы 2000-х годов и Unix-варианты без установленной поддержки XZ

Встраиваемые устройства

Передача обновлений и данных на роутеры, NAS, IoT-устройства с минимальным busybox-окружением

Параллельная распаковка большого архива

Использование pbzip2 для одновременного декодирования блоков на многоядерных серверах

Корпоративные системы на BZIP2

Совместимость с существующими backup-скриптами и пайплайнами, ожидающими формат tar.bz2

Советы по конвертации TXZ в TBZ2

1

Размер архива вырастет

TBZ2 даёт сжатие на 15-30% хуже, чем TXZ. Учитывайте это при ограниченной пропускной способности сети или дисковом пространстве

2

Распаковка нагружает CPU

BZIP2 при распаковке тратит больше процессорного времени, чем LZMA2 в TXZ. На слабых устройствах открытие архива займёт заметное время

Частые вопросы

Насколько вырастет размер архива при конвертации TXZ в TBZ2?
Обычно размер увеличивается на 15-30% для текстовых данных и исходного кода, до 50% для логов. На уже сжатых файлах (JPG, MP4, PDF) разница минимальна. Это связано с тем, что BZIP2 работает блоками 100-900 КБ, тогда как XZ может использовать словарь в несколько гигабайт и находить более дальние повторения.
Откроется ли полученный TBZ2 на старых Linux-системах?
Да, BZIP2 был стандартной утилитой Unix-систем с конца 1990-х, поэтому TBZ2 откроется в любом дистрибутиве 2000-х годов командой tar -xjf или связкой bunzip2 + tar. Он также поддерживается на Solaris, AIX, HP-UX, FreeBSD, в большинстве сборок busybox для встраиваемых систем.
Сохранятся ли права доступа Unix при конвертации?
Да, TBZ2 использует тот же TAR-контейнер, что и TXZ, поэтому все POSIX-атрибуты сохраняются: права чтения/записи/выполнения, флаги setuid/setgid/sticky, числовые UID/GID, временные метки, расширенные атрибуты xattr через PAX-расширение, символические и жёсткие ссылки.
Будет ли распаковка TBZ2 быстрее или медленнее, чем TXZ?
В большинстве случаев распаковка TBZ2 медленнее, чем TXZ - примерно в 1.5-2 раза. BZIP2 при распаковке нагружает CPU из-за обратного BWT-преобразования, тогда как LZMA2 декодирует словарные ссылки относительно быстро. Для сценариев частого открытия архива TXZ или TGZ предпочтительнее по скорости.
Можно ли распаковывать TBZ2 параллельно?
Да, утилита pbzip2 распаковывает независимые блоки BZIP2 на нескольких ядрах одновременно. Однако для этого архив должен быть создан в формате с подходящей структурой блоков (что верно для большинства стандартно созданных TBZ2). Для XZ есть аналог pixz, но он применяется реже.
Зачем переходить на TBZ2 если есть TXZ?
Только в специфических случаях: совместимость со старыми Unix-серверами без поддержки XZ, корпоративные системы автоматизации с жёсткой привязкой к BZIP2, встраиваемые устройства с минимальным набором утилит. Для большинства современных задач TXZ - лучший выбор по сжатию и скорости распаковки.
Можно ли конвертировать несколько TXZ файлов в TBZ2 за один раз?
Да, пакетная конвертация позволяет загрузить несколько TXZ архивов одновременно. Каждый файл будет распакован, повторно сжат BZIP2 и сохранён как TBZ2 с тем же базовым именем. Скачать результаты можно по каждому файлу отдельно после завершения обработки.