開発中の Fedora 39 に対する最近の変更提案の 1 つは、systemd の mkosi-initrd を、initrd を構築するための Dracut の最新かつ優れた代替手段として出荷することです。
当初、mkosi-initrd は、initrd を構築するための Dracot の代替ビルダーとして扱われるように設定されていますが、初期のスコープは制限されている可能性があります。 mkosi-initrd の目的は、現在 Dracut で使用されている複雑で非効率的なビルド プロセスをクリーンアップすることです。機能の提案は次のように説明しています:
mkosi-initrd は、initrds の代替ビルダーです。ユーザーが initrds をローカルで構築するために使用できるように、Fedora にパッケージ化されます。カーネル パッケージのインストール時に initrd をビルドするために、kernel-install プラグインが提供されます。ストレッチ ゴールとして、initrds は koji でビルドされ、rpm パッケージ経由で提供されます。さらなる拡張目標として、事前に構築された initrds が、rpm パッケージを介して配布できる統合カーネル イメージで使用されます。
…
initrds を作成するプロセスは複雑で非効率的です。 Initrds には重複する機能が含まれており、メンテナーの多大な労力が必要です。この提案の目的は、initrd 作成の非常に単純化されたメカニズムと単純化された initrd コンテンツを導入することです。mkosi-initrd プロジェクトは、mkosi の構成ファイルのセットです。 mkosi は、システム パッケージからオペレーティング システム イメージを構築するためのプログラムです。 initrd は、mkosi-initrd によって提供される構成で mkosi を呼び出すことによって構築されます。
ファイル システムをスクレイピングして依存関係を再確認して initrd を構築する代わりに、既存のパッケージと dnf/rpm を介した通常のパッケージ インストールを使用して initrd を設定します。これは、パッケージ マネージャーが依存関係を満たす責任があることも意味します。実行時に、systemd は実行環境のセットアップとプログラムの呼び出しを担当します。
現在、この方法で構築された initrd はより大きくなっていますdracut によって構築された initrds よりも。また、機能も制限されています。多くの一般的なタイプのシステムは問題なく動作しますが、より特殊な構成はサポートされていません。
…
この変更の目的は、代替メカニズムを提供することです。フィードバックが肯定的である場合、特定のシナリオでデフォルトとして mkosi-initrd で構築された initrds の使用を検討することがあります。近い将来、dracut を削除する予定はありません。これは、サポートされていない、またはうまく機能しない場合でも、dracut が自然なフォールバックであることを意味します。このように、この変更は、Changes/Unified_Kernel_Support_Phase_1 に似ています。これは、現在確立されているアプローチに代わる新しいテクノロジのプレビューを提供するためです。
Fedora 39 で提案されているこの変更の詳細秋には Fedora Project Wiki で見つけることができます。
mkosi-initrd は systemd プロジェクトでホストされており、GitHub で見つけることができます。