kledgeb UbuntuやLinuxの最新情報を紹介

Ubuntu 23.10 その38 - initramfsのサイズ削減と生成時間の短縮

initramfsのサイズ削減と生成時間の短縮

以前紹介した「initramfs」の改善が「Ubuntu 23.10」で取り込まれます。


  • Reduce initramfs size and speed up the generation in Ubuntu 23.10

サイズ削減と生成時間の短縮

今回行われた改善は「initramfs」のサイズ削減と、「initramfs」の生成にかかる時間の短縮です。
以前紹介した内容は以下を参照してください。

  • initramfsの圧縮方法を再検討
 

initramfs

「initramfs」は「Ubuntu」を起動するために一時的に利用されるファイルシステムです。
実際にストレージにインストールされた「Ubuntu」を起動するために、「initramfs」が利用されています。

例えばユーザーが「Ubuntu」を暗号化してインストールした場合、パスフレーズを入力してロックを解除してもらう必要があります。
ロックを解除しないとそもそもストレージにインストールされた「Ubuntu」にアクセスできません。

この時ユーザーにパスフレーズの入力を促す画面を表示する必要がありますが、この役割は「initramfs」が担っています。
そのため「initramfs」にはGPUドライバーなど、様々なPCやマシン上で必要なデバイスドライバーが広範に含まれています。

initramfsは圧縮できる

「initramfs」はデバイスドライバーなど他のファイルを含むアーカイブファイルです。
「Linux kernel」は圧縮された「initramfs」を扱えるため、通常「initramfs」は生成時に「xz」や「lz4」、「zstd」等で圧縮されます。
またそれぞれの圧縮方法には、圧縮レベルなど圧縮に関連するパラメーターがあります。

Ubuntu 22.04 LTS以降の圧縮方法と課題

「Ubuntu 22.04 LTS」以降、デフォルトの圧縮方法及び圧縮レベルが「zstd -1」に変更されました。
これは「zstd -19」では、「initramfs」は生成に時間がかかりすぎてしまうためです。

  • mkinitramfs is too slow

しかし圧縮レベルを変更した結果、今度は「initramfs」のサイズが大きくなり、メモリー不足など他の不具合を呼び込むことになりました。

  • Can't boot: "error: out of memory." immediately after the grub menu

状況を改善しよう

というわけで課題に対処するため、今回様々な改善が施されました。

事前圧縮

カーネルモジュールとファームウェアファイルを事前に圧縮しておき、「initramfs」の生成時にそれらの圧縮済みファイルを圧縮せずに取り込むように変更されました。

  • Ship kernel modules Zstd compressed
  • compress firmware in /lib/firmware  
  • Do not re-compress compressed kernel modules and firmware files

処理の移行

一部の処理が「Bash」から「dracut-install」に変更されました。

  • manual_add_modules is slow / consumes the most time

ストレージに保存しない

さらに中間生成されるメインのCPIOアーカイブをストレージに保存しないように変更されました。

というわけで

これらの改善により「initramfs」のサイズが削減され、「initramfs」の生成にかかる時間も短縮されています。
加えて起動時間も短縮されています。

Ubuntu 22.04 LTSの対応

さて現状「Ubuntu 22.04 LTS」は「zstd」で圧縮されたファームウェアファイルに対応しておらず、このままだとアップグレードの失敗時に問題が発生する可能性があります。
そこで「zstd」で圧縮されたファームウェアファイルに対応した「Linux kernel」がバックポイーとされる予定です。

  • Backport support to tolerate ZSTD compressed firmware files

Ubuntu
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Linux その450 - Canonical LXD や MicroCloud にクライアントなりすましの脆弱性・アップデートを
    Canonical LXD や MicroCloud に重大な脆弱性 2026年10月28日、Canonical LXD や MicroCloud に重大な脆弱性がみつかりました。
  • Ubuntu 26.04 その82 - Linux kernel の脆弱性 CVE-2026-98432 の対応状況
    CVE-2026-98432 の対応状況 2026年11月2日、Linux kernel の脆弱性である CVE-2026-98432 の対応状況がアナウンスされました。
  • Linux Mint その294 - Linux Mint 27 の開発とリリース方針の変更・アラーム管理アプリの開発
    Linux Mint 月刊ニュース Linux Mint 開発チームは Linux Mint 月刊ニュースにて、Linux Mint の開発状況や取り組みを紹介しています。
  • Ubuntu 26.04 その76 - CVE-2026-92392 含む curl の脆弱性22件修正・アップデートを
    curl の脆弱性22件修正 CVE-2026-92392 含む22件の curl の脆弱性に対応したセキュリティーアップデートがリリースされました。
  • Ubuntu 26.10 その38 - Ubuntu 26.10 がリリースされました・ディスクイメージのダウンロード
    Ubuntu 26.10 リリース 2026年10月15日、Ubuntu 26.10 がリリースされました。
  • Ubuntu 26.04 その78 - eMudhra 認証局の秘密鍵の侵害・アップデートを
    eMudhra 認証局の秘密鍵の侵害 2026年10月20日、eMudhra 認証局(eMudhra CA)の秘密鍵の侵害が発覚しました。
  • Ubuntu 26.04 その79 - CVE-2026-111497 に対応した Brotli のリリース・アップデートを
    Brotli のセキュリティーアップデート 2026年10月26日、CVE-2026-111497 に対応した Brotli がリリースされました。
  • Ubuntu 26.10 その39 - Ubuntu 26.10 の新機能と変更点・既知の問題
    Ubuntu 26.10 の新機能と変更点・既知の問題 リリースノートから、Ubuntu 26.10 の新機能と変更点を紹介します。
  • Ubuntu 26.04 その77 - PHP に php2shell(CVE-2026-109618/CVE-2026-109619)の脆弱性・アップデートを
    PHP に php2shell の脆弱性 PHP に php2shell と呼ばれる致命的な脆弱性が見つかりました。
  • Ubuntu 26.04 その80 - Ubuntu 26.04.2 LTS のリリーススケジュール
    Ubuntu 26.04.2 LTSのリリーススケジュール Ubuntu 26.04.2 LTS のリリーススケジュールを紹介します。
記事のピックアップ
オプション