Fedora 43 будет использовать сжатие Zstd для более быстрой загрузки и уменьшения размера Initrd

Проект Fedora работает над изменением, которое может ускорить загрузку вашей системы и сэкономить место на диске. Начиная с Fedora Linux 43, проект планирует по умолчанию сжимать начальный RAM-диск (initrd) с помощью формата zstd
.
Это касается всех выпусков Fedora, в которых initrd создается с помощью dracut
, инструмента, отвечающего за создание образа, используемого на ранних этапах запуска.
Если это изменение будет одобрено, оно обеспечит более плавный и быстрый запуск на настольных компьютерах, серверах и виртуальных машинах.
Введение
Проект Fedora предлагает внести существенные изменения в процесс сжатия специального файла, используемого при запуске, который называется начальный виртуальный диск (initrd). Это изменение направлено на то, чтобы ваша система загружалась быстрее и занимала меньше места на диске.
Целевой выпуск для предлагаемого изменения, заключающегося в сжатии начального RAM-диска (initrd) с помощью zstd
по умолчанию для всех вариантов Fedora при сборке с помощью dracut
, — это Fedora Linux 43.
Что такое initrd
?
В системах Linux initrd
(начальный RAM-диск) — это временная корневая файловая система, которая загружается в память компьютера во время запуска. Считайте, что это небольшая временная операционная система, которая помогает компьютеру подготовиться к загрузке полноценной операционной системы.
Он используется для подготовки перед тем, как ваш компьютер сможет получить доступ к своей основной файловой системе. Это включает в себя загрузку необходимых драйверов для таких устройств, как жёсткий диск или сеть, особенно если ваша основная файловая система находится в сложной структуре, например в зашифрованном разделе или на сетевом диске.
Ядро может распаковать эти initrd
или initramfs
изображения, если они сжаты с использованием различных алгоритмов, включая gzip
, bzip2
, XZ
, и zstd
.
dracut
(https://dracut-ng.github.io/dracut-ng/) — это программа, которая используется для создания таких initramfs
образов в некоторых дистрибутивах Linux.
Предлагаемое изменение: использование zstd
-сжатия
В предложении предлагается использовать zstd
для сжатия initrd
по умолчанию во всех версиях Fedora, которые собираются с помощью dracut
.
В настоящее время в большинстве версий Fedora используется xz
для сжатия initrd
. Однако теперь dracut
настроен на использование zstd
по умолчанию, если в вашей системе доступна программа zstd
.
Fedora CoreOS уже использует zstd
и имеет для него заданный коэффициент сжатия. Предлагаемое изменение сделает zstd
стандартом для всех вариантов Fedora.
На момент написания этой статьи 95 % пользователей решительно поддерживают это изменение. Поэтому оно, скорее всего, будет реализовано в Fedora 43. Вот результаты опроса:
Почему предлагается это изменение? (Преимущества)
- Меньший размер
initrd
: Использованиеzstd
приведет к созданию меньшего файлаinitrd
. - Более быстрая загрузка: меньший
initrd
также означает более быструю загрузку, поскольку на распаковку и загрузку уходит меньше времени. - Экономия дискового пространства: это изменение специально разработано для экономии дискового пространства в разделе
/boot
. Это напрямую связано с проблемами, из-за которых пользователи могут столкнуться с ошибкой «На устройстве не осталось места» при попытке установить новое ядро, поскольку в/boot
разделе может быстро закончиться место во время обновления.
Влияние на пользователей
Для большинства пользователей не должно быть заметных изменений, кроме немного более быстрой загрузки. Это связано с тем, что ядро Linux уже довольно давно поддерживает декомпрессию zstd
.
Существующие установки Fedora будут автоматически обновлены до использования zstd
по умолчанию, и от вас не потребуется никаких действий вручную.
Если вы предпочитаете использовать xz
для initrd
-сжатия, вы можете настроить dracut
соответствующим образом.
Разработчикам нужно будет убедиться, что их инструменты по-прежнему работают с новым методом сжатия.
Как протестировать Изменение
Если вы опытный пользователь и хотите протестировать эту функцию в системе Fedora с пакетным режимом (например, в Fedora Workstation) до её официального выпуска, выполните следующие действия.
Установите zstd
с помощью команды от имени пользователя root
:
dnf install -y zstd
Пересоберите файл initrd
:
dracut <path to initrd>
или
dracut --regenerate-all
для всех версий ядра.
Проверьте, не сжат ли он zstd
:
LANG=C grep -aUPq "\x28\xb5\x2f\xfd" <path to initrd> && echo "using zstd" || echo "not using zstd"
Чтобы изменения вступили в силу, перезагрузите систему.
Для других типов систем может потребоваться дождаться, пока изменения появятся в разрабатываемых версиях, или создать собственные образы.
Скоро выйдет более эффективная версия Fedora
Переход на сжатие zstd для initrd — разумное решение для Fedora.
Благодаря использованию современного и эффективного алгоритма сжатия Fedora будет загружаться быстрее, а пользователи смогут избежать досадных ошибок, связанных с заполнением /boot
раздела, что в конечном счёте улучшит общее впечатление от использования.
Мы с нетерпением ждём выхода Fedora Linux 43 и этих долгожданных улучшений!
Редактор: AndreyEx