initramfsがなぜ必要ですか?

initramfsがなぜ必要ですか?

ファイルシステムとして(代わりに)またはをjffs選択すると、カーネルサイズは非常に小さくなります(3.4MBと比較して1.4MB)。これはかなりの量のスペースが必要であることを意味します。だから、可能であれば完全に削除し、非常に小さなコアを取得します。これが私が望むものです。sdinitramfsinitramfsinitramfs

私の心に浮かぶ基本的な質問は、これがなぜ必要なのかということですinitramfs。初期ファイルシステムなしでLinuxカーネルを起動できませんか?

私の最終アプリケーションは計算と通信のみを実行し、ストレージスペースはまったくありません。したがって、ファイルシステムを持たないOSは、少なくとも私のアプリケーションに適しています。

ベストアンサー1

initramfsのサイズの増加は、ramfsドライバー(ほんの数kBであり、とにかく他のものが必要です)によるものではなく、initramfs自体によるものです。 initramfsには、実際のルートファイルシステムを組み立ててマウントするために必要なプログラムが含まれています。

/Initramfsを使用すると、システムの起動が容易になり、場合によっては暗号化などが可能になります。ホットスワップ可能な周辺機器が多いPCスタイルのハードウェアにこれを維持することをお勧めします。一方、initramfsなしで組み込みデバイスを起動するのは完全に合理的であり、カーネルはビルドされた特定のハードウェア構成のみをサポートします。

もちろん、カーネルはファイルシステムから起動する必要があります。実行したいアプリケーションをロードする方法が必要です。何も実行する予定がない場合は、マシンの電源を切ることをお勧めします。

initramfsを使用したくない場合は、ブートローダにそれを渡さないように指示します。もちろん、カーネルビルドの出力には1つを含めないでください。これがどのように起こるかは、アーキテクチャとブートローダによって異なります。たとえば、initramfsは含まれていませvmlinuxbzImage(それぞれ生のカーネルと圧縮カーネルです)。しかし、uImage(U-Bootの場合)カーネルとinitramfs(存在する場合)の両方がパッケージ化されています。

(技術的に言えば、マックサイフ常にinitramfsがありますが、デフォルトでは空の134バイトアーカイブです。あなたが見て削除したいのは、ルートファイルシステムをマウントするためのツールを含むビルドプロセスによって生成された「実際の」空ではないinitramfsです。 )

initramfsは、永続データのない単一のアプリケーションシステムを作成するための合理的な方法です。すべてのアプリケーションをinitramfsに入れ、起動して維持します。これにより、永続ストレージまたはブートイメージをより簡単に構成できます(カーネルとinitramfsのみが必要で、一緒にバンドルできます)。しかし、このアプローチには欠点もあります。 initramfsのすべてのデータはRAMに永続的に保存され、ブートイメージのファイルを簡単に変更することはできず、アーカイブを再構築する必要があります。

おすすめ記事