カーネルがブートローダーから取得する必要があるものはありますか?通常、カーネルはシステムを最初から起動することができますが、なぜブートローダーから何かが必要なのですか?私はこのようなカーネルからのブートメッセージを見てきました。
"Fetching vars from bootloader... OK"
では、渡される変数は正確には何ですか?また、変数はブートローダーからどのように渡されますか?スタックを通過しますか?
カーネルがブートローダーから取得する必要があるものはありますか?通常、カーネルはシステムを最初から起動することができますが、なぜブートローダーから何かが必要なのですか?私はこのようなカーネルからのブートメッセージを見てきました。
"Fetching vars from bootloader... OK"
では、渡される変数は正確には何ですか?また、変数はブートローダーからどのように渡されますか?スタックを通過しますか?
Linuxカーネルがブートローダーから受け入れるパラメーターがいくつかありますが、今覚えているのはそのvga
パラメーターです。例えば:
kernel /vmlinuz-2.6.30 root=/dev/disk/by-uuid/3999cb7d-8e1e-4daf-9cce-3f49a02b00f2 ro vga=0x318
一般的なパラメータのいくつかを説明するLinuxカーネルについて知っておくべき10の起動時パラメータを見てください。
Linux カーネルの場合、ブートローダーがカーネルに伝えなければならないことがいくつかあります。これには、カーネル コマンド ライン (既に述べたように) のようなものが含まれます。メモリ内でinitrdがロードされている場所とそのサイズ、initrd が使用されている場合 (カーネルはそれ自体をロードすることはできません。多くの場合、initrd を使用する場合) 、ストレージ デバイスにアクセスするために必要なモジュールは initrd 内にあり、ストレージにアクセスできるようになる前に非常に複雑なセットアップを行う必要がある場合もあります)、およびいくつかのさまざまなオッズとエンド。
従来の x86 アーキテクチャ (32 ビットと 64 ビットの両方) の詳細については、Documentation/x86/boot.txt (2.6.30 のバージョンへのリンク) を参照してください。これには、これらの変数がカーネル セットアップ コードに渡される方法も含まれます。
ブートローダーは、カーネルに引数を渡すためにスタックを使用しません。少なくとも Linux の場合、ブートローダが埋めるかなり複雑なメモリ構造があり、カーネルは解析方法を知っています。これは、ブートローダーがカーネルをコマンドラインに向ける方法です。詳細については、 Documentaion/x86/boot.txtを参照してください。
通常、コマンド ライン パラメーターと呼ばれるパラメーターは、ブート ローダーからカーネル モジュールに渡されます。ブートローダーは BIOS 割り込みの多くを使用して検出します。
memory
HDD
Processor
Keyboard
Screen
Mouse
ETC...
すべてのハードウェアの詳細は、起動時、つまりリアルモードで検出され、このパラメーターをカーネルに渡します。
Linux は、ブート ローダーから変数を受け入れて、特定のオプションを使用できるようにします。あなたができることの1つは、ログインする必要がないようにすること(回復モード)であり、他にもいくつかのオプションがあることを私は知っています. 主に、何かに問題がある場合やパスワードの変更に問題がある場合に修正を行うことができます。これは、別のオプションを使用することを選択した場合に、Ubuntu Live-CD が Linux を起動する方法です。