ブートローダ(grub)からカーネル(linux)に「コマンドライン」がどのように渡されますか?

ブートローダ(grub)からカーネル(linux)に「コマンドライン」がどのように渡されますか?

Grub(またはその他)は、特定のパラメータを変更するためにLinuxカーネルにコマンドライン引数を送信します。

カーネルが起動する前(そして修正も可能)に入ってこの情報を見るにはどこを見るべきですか?カーネルが見つけなければならないメモリの特定の場所に保存されていますか?

カーネルが起動すると、/procエントリの下に配置されることがわかりますが、これがどのように機能するかについてのOSの事前情報を探しています。 (たぶん間違った場所ですか?)

これは、ブートローダがシーケンスの次のスプライト(通常はカーネルに限定されない)に情報を渡す方法に関する質問です。 grubの設定とは関係ありません。

答え1

グラップツールマルチブート仕様。カーネルをロードしてコントロールを渡すときにポインタを渡します。情報構造記憶の中に。この構造のフィールドの1つはコマンドラインです。

Linuxカーネルは自分だけですプロトコル開始、しかしコマンドライン同様の方法で処理されます。ブートローダはそれをメモリに保持し、カーネルが見つけることができるようにカーネルデータ構造のさまざまなフィールドを埋めます。

答え2

ブートローダは、ブートロードの管理が完了した後、通常はinitrd.imgまたはinitramfsに基づく最小オペレーティングシステム環境を起動します。 grubファイルに表示されるカーネルパラメータは、この最小環境の後に実行されるカーネルに渡されます。通常、すべての目的と目的のためにmkiinitrdを実行するときは、/ etcで選択した適切な設定を使用してinitrdイメージを構成します。

一般的な起動順序が発生すると、初期環境が送信され、一般的なカーネルが使用されます。 1つの注意点は、initrdで起動されたドライバが正常な実行状態にある可能性があることです。これは痛みを伴うことがあります。

関連情報