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
人気の記事
  • Ubuntu 26.04 その42 - Ubuntu 26.04.1 LTS のリリーススケジュール
    Ubuntu 26.04.1 LTSのリリーススケジュール Ubuntu 26.04.1 LTS のリリーススケジュールを紹介します。
  • Linux Mint その292 - Linux kernel 7.0 採用の Linux Mint 22.3 リリース・システム管理ツールにカーネル管理機能追加など
    Linux Mint 月刊ニュース Linux Mint 開発チームは Linux Mint 月刊ニュースにて、Linux Mint の開発状況や取り組みを紹介しています。
  • Linux その422 - GNOME Boxes の再構築と未来・Flatpak のみの提供やモダンな機能の実装など
    GNOME Boxes の再構築と未来 GNOME Boxes の再構築と未来が以下で紹介されています。
  • Ubuntu 26.04 その68 - Ubuntu 26.04.1 LTS がリリースされました・ディスクイメージのダウンロード
    Ubuntu 26.04.1 LTS リリース 2026年8月27日、Ubuntu 26.04.1 LTS がリリースされました。
  • Kubuntu その117 - Kubuntu 26.04 LTS にもっと手厚いサポートを・最高の信頼性を誇る KDE 搭載ディストリビューションを目指して
    最高の信頼性を誇る KDE 搭載ディストリビューションを目指して Kubuntu 26.04 LTS に手厚いサポートが導入されました。
  • Linux その421 - GNOME Shell のデザイン構想と長期的な見通し
    GNOME Shell のデザイン構想と長期的な見通し GNOME Shell のデザイン構想と長期的な見通しが、以下で紹介されています。
  • Linux その386 - Arch Linux の AUR パッケージで悪意あるコミットが続く・今度はソースコードの難読化か
    Arch Linux の AUR パッケージで悪意あるコミットが続く Arch Linux の AUR パッケージで悪意あるコミット(マルウェア)が続いています。
  • Windows その29 - Windows 向け Coreutils 登場・Coreutils のインストールやコマンドの一覧など
    Windows 向け Coreutils 登場 Windows 向け Coreutils が登場しました。
  • Linux その420 - KDE Plasma で実装予定の新機能や改善・UI レイアウトの調整やリモートデスクトップの改善など
    KDE Plasma で実装予定の新機能や改善 KDE Plasma で実装予定の新機能や改善を紹介します。
  • Ubuntu 18.04 その195 - PolicyKitにクラッシュや権限の昇格など複数の脆弱性・今すぐアップデートを
    PolicyKitの脆弱性 2018年7月16日、クラッシュや権限の昇格など複数の脆弱性に対応した「PolicyKit」がリリースされました。
記事のピックアップ
オプション