Dracut への移行計画
以下で Dracut への移行計画が紹介されています。Dracut とは
Dracut とは initramfs-tools の代替ソフトウェアです。Dracut は以前紹介していますので、以下を参考にしてください。
現状
現状 Ubuntu Desktop 及び Ubuntu Server では、initramfs(initrd) の生成に initramfs-tools を採用しています。しかし initramfs-tools には、以下の課題や欠点があります。
- systemd が initramfs 内で使用されていない
- NVM-oF(NVMe over Fabric)がサポートされていないなど、機能が欠けている
- initramfs と ルートファイルシステム間で実装が十分に共有されておらず、メンテナンスコストの増大につながっている
- ここ数年 initramfs-tools のアップストリームで積極的な開発が行われておらず、多くの作業がメンテナンス作業になっている
- initramfs に大量のシェルスクリプトが含まれている
- initramfs の生成はシェルスクリプトで実装されている
シェルスクリプトは実行速度が遅く、また構文の複雑さ故、メンテナンスの負担が大きくなっています。
ちなみに Ubuntu Core はすでに systemd ベースの initramfs を使用しており、
core-initrd は Dracut を利用しています。
課題の解消に向けて
これらの課題を解消するために、Ubuntu Desktop 及び Ubuntu Server で initramfs の生成ツールを従来の initramfs-tools から Dracut に変更する予定です。Ubuntu では init に systemd を採用しているため、Dracut は systemd の Dracut モジュールを使用することになります。
initramfs で systemd を使用することで、initramfs 内のシェルスクリプトを減らすことができます。
また Dracut では以下の機能がサポートされます。
- NVM-oF(NVMe over Fabric)のサポート
- LUKS 暗号化デバイスのパスフレーズ入力時に、Bluetooth キーボードのサポート
シェルスクリプトを減らす
シェルスクリプトに関する課題は、Dracut に移植することで課題の解消を狙います。例えば Dracut では、dracut-install および dracut-utils ですでに C による実装が含まれています。
複数のバージョンを経て移行する
Dracut への移行は、複数の Ubuntu のバージョンを経て移行します。Ubuntu 24.10
Ubuntu 24.10 では、一般的及び基本的なユースケースにおいて、Dracut が機能することを確認します。ユーザーが Dracut のテストを行えるように環境を整え、ユーザーからフィードバックを募集し、問題の調査や確認、そして必要な対応を精査します。
Ubuntu 25.04
Dracut を initramfs-tools の代替としてサポートします。また ubuntu-desktop パッケージ及び類似パッケージには、依存関係に initramfs-tools が指定されていますが、この依存関係の選択に dracut パッケージを加えます。(initramfs-tools | dracut)
これによりクラウド向けなどイメージのメンテナーは、dracut を選択できるようになります。
Ubuntu 25.10
Dracut をデフォルトにします。Ubuntu Desktop Installer は、Dracut をインストールするようになります。
ただし引き続き initramfs-tools は利用できるようにし、Dracut で問題が発生するユーザーは initramfs-tools をインストールして initramfs-tools に切り替えられるようにします。
Ubuntu 26.04 LTS
dracut のみをサポートし、initramfs-tools をサポートから外します。また initramfs-tools を universe リポジトリーに移します。
ubuntu-desktop パッケージ及び類似パッケージの依存関係から initramfs-tools が削除され、dracut のみになります。
問題の追跡と予定の延期について
Dracut に関する問題の追跡は、以下で行われています。影響の大きい問題が発覚し、優先的に修正が必要になった場合、上記のスケジュールから遅れが発生する可能性もあります。
ライブイメージについて
ライブイメージは引き続き casper と initramfs-tools を使用します。ライブイメージは dracut-live 経由でライブシステムをサポートする Dracut への移植作業が必要なためです。
dracut-live
dracut-live は root=live:<URL> を指定することで、SquashFS イメージからの起動を可能にします。例えば <URL> には、CDLABEL=$ubuntu_label といった指定を行います。
ただ dracut-live は、スタックに積み重ねる複数の SquashFS イメージがサポートされておらず、この対応が必要になっています。
casper-bottom スクリプト
またすべての casper-bottom スクリプトを Dracut へ移植するか、アップストリームのプロジェクトに組み込む必要があります。後者は例えば ConditionKernelCommandLine=rd.live.image を利用してサービスの有効化・無効化を指定したり、あるいは類似する方法で対処する必要があります。
サポートするファイルシステムの考慮
Dracut をデフォルトにする前に、インストーラーで選択可能な以下のファイルシステムに対応しなければなりません。- ext4(デフォルト)
- LVM
- LVM(暗号化)
- ZFS
- ZFS(暗号化)
5. に関しては、現状以下の問題があります。
Dracut のサポートについて
Dracut は systemd モジュールと組み合わせて利用されることが想定されており、この組み合わせのみで Dracut のサポートが提供されます。universe リポジトリーに配置されている Dracut モジュールは、コミュニティーによるサポートのみになります。
