Linuxカーネルでinitrd/initramfsを設定する

Linuxカーネルでinitrd/initramfsを設定する

私が理解したのは、initrd / initramfsがカーネルの初期化を支援するためにRAMにファイルシステムを設定することです。次の質問があります。

(1)initrd / initramfsはブートローダによって設定されます(例:GRUB 2)。

(2) カーネルがページテーブルを初期化する前に initrd/initramfs 設定が発生しますか?

(3) 一時的ですか?カーネルの初期化が成功した後、このファイルシステムはどうなりますか?

ベストアンサー1

(1) initramfs では、通常カーネルと初期ファイルシステムが同じファイルに存在します。したがって、ブートローダがカーネルファイルの場所を知る必要がある場合は、initramfsの場所も知っています。その逆。 initramfsが別々のファイルの場合は、ブートローダが参照し、パラメータとしてカーネルに渡す必要があります。

ブートローダはカーネルに制御権を渡します。カーネルは、準備が必要なすべての項目の初期化が終わったら、initramfsを抽出し、init(initramfs内)に制御を渡します。

(2) initramfs はカーネルが仮想メモリサブシステムを準備した後に抽出されます。

(3)通常、initramfsが作業を完了した後(つまり、システムのルートファイルシステムのマウント)、新しくマウントされたルートファイルシステムに「移動」し、RAMからinitramfsの内容を削除するための一連の微妙なステップが実行されます。 (明示的に)「rm」を実行して)。

次の内容をお読みください。 https://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt

おすすめ記事