最後まで読んだこの人気のあるIBM文書(オンラインでよく見た内容です)初期のRAMディスクの機能について説明します。
しかし、これがどのように機能するかを概念化するのに問題があります。
文書には次のように記載されています。
ブートローダ(GRUBなど)は、ロードするカーネルを識別し、カーネルをコピーします。カーネルイメージと関連するinitrdをメモリに追加する
私はすでに混乱しています。カーネル全体をメモリにコピーしますか、それとも一部だけコピーしますか?カーネル全体がメモリにある場合、初期RAMディスクが必要なのはなぜですか?
私の考えでは、initrdの目的は小さな一般的なカーネルイメージを持つことを可能にすることであり、initrdはカーネルイメージをロードする前にここに正しいモジュールをインストールします。しかし、カーネル全体がすでにメモリにある場合、なぜinitrdが必要なのですか?
これはまた私を混乱させるもう一つの問題をもたらします。モジュールがカーネルにロードされる場所はどこですか?すべてのカーネルモジュールはinitrdに保存されていますか?
ベストアンサー1
カーネル全体は、起動時に通常initramfs
現在と一緒にメモリにロードされます。 (起動を必要としないようにシステムを設定することも可能ですinitramfs
が、デスクトップやサーバーでは一般的ではありません。)
の目的は、initramfs
「実際の」ファイルシステムをマウントし、システムの起動を続行するために必要な機能を提供することです。これにはカーネルモジュールとさまざまなバイナリが含まれます。少なくともudev
いくつかのネットワーキングおよびkmod
ローディングモジュールが必要な場合がある。
モジュールは起動後にカーネルにロードされるため、実際のファイルシステム、開発ツリー(モジュールを開発する場合)など、どこにでも保存できます。マウントルートファイルシステム(残りを含む)を含めるだけinitramfs
です。必須モジュール。initramfs
/lib/modules
initramfs