GRUBのロード以降
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/24 16:09 UTC 版)
「GNU GRUB」の記事における「GRUBのロード以降」の解説
GRUBのロードがひとたび完了すると、どのOSを起動するか選択するためのインタフェースが提供される。これは通常、グラフィカルなメニューのかたちをとっていることが多い。そのようなメニューが利用できない場合、またはユーザーが直接制御した場合、GRUBは自身が持つコマンドプロンプトを提供する。これを用いてユーザーはブートパラメータを手動で指定することが可能である。GRUBはユーザーが定義した時間何も操作せず経過すると自動的に特定のカーネルをロードするよう設定できる(デフォルトではメニューの最上位にあるOSが起動する)。 GRUBがOSもしくはカーネルの選択メニューにおいて受け付けるコマンドの内、最も重要なものはおそらく次の2つである。 OSの起動前に、メニュー上であるOSにカーソルを当てて選択した状態でキーボードの'e'を押下した場合、そのOSの起動パラメータを編集できる(これら起動パラメータはGRUB自身が持つ機能ではないが、現代的なOSやカーネルはパラメータ機能を持っている)。典型的なケースとして、Linuxシステムのカーネル・パラメータの変更の際にこのことを利用する。このように、既に起動済みシステム上でGRUBの設定を変更しない、及びカーネル・パラメータを編集しないケースというのは、突発的な事態、例えばOSがブートに失敗したケースなどを想定しており、そのような事態が起きてもGRUBは対応できる。また、カーネル・パラメータのコマンドラインを利用すると、とりわけ、OS起動前に、あるLKMを無効化する、またはブラックリスト化(LKMをロードしないようカーネルに知らせる機能)することが可能となる。特定のLKMが壊れており、このため正常なブート・シーケンスが阻害される場合、おそらくこの機能が必要となる。例としてLinuxカーネルのLKMである"nvidia-current"というものをブラックリスト化する場合、カーネル・パラメータの末尾に"modprobe.blacklist=nvidia-current"のような文字列を追記する必要があるが、予めGRUBの設定ファイルにこの文字列が無かったとしても、キーボードの'e'を押下してパラメータをオン・ザ・フライで変更できるのである。 任意の状態でキーボードの'c'を押下した場合、BashライクなGRUBのコマンドラインを表示する。とはいえこれは通常のLinux上のシェルとは異なる。これはGRUB固有の特定コマンドしか受け付けない。 いずれの場合もパラメータの編集が完了したあと、Ctrl+xキーを同時に押下すればOSがこのパラメータを使って起動する。 ブートオプションが選択されると、GRUBは選択したカーネルをメモリにロードし、以後の制御を全てカーネルに委ねる。あるいは、GRUBはチェーンロード(英語版)を利用し、別のブートローダにブートプロセスの制御を渡すこともできる。これはWindowsのようなマルチブート標準をサポートしない、またはGRUBが直接サポートしていないOSをロードするのに使用される手段である。この場合、他のシステムのブートプログラムはGRUBが保全したまま維持される。そして、カーネルの代わりとして、他システムはあたかもMBRから起動したかのようにロードされる。このことからGRUBは、Microsoftブートメニューと同じく、マルチブート非対応のOSも追加で選択できるブートマネージャであるといえる。既にシステムにWindows OSが存在する場合、「その上に追加で」Linuxディストリビューションをインストールする際には、現代的なLinuxディストリビューションのインストーラは、GRUBがこのような挙動をするよう自動的に設定する場合がある。そして、既にインストール済みのオリジナルOSは一切の変更が加わらず維持され、それは例えば、複数のバージョンのWindowsがインストールされているシステムでも同様である。
※この「GRUBのロード以降」の解説は、「GNU GRUB」の解説の一部です。
「GRUBのロード以降」を含む「GNU GRUB」の記事については、「GNU GRUB」の概要を参照ください。
- GRUBのロード以降のページへのリンク