助け合いフォーラム

LPIC

LPIC Lv1-101(Ver5.0)
問題ID : 3716
問題を開く
GRUB2の設定ファイルにおいて、ロードするモジュールを指定する項目はどれか。

正解

insmod

解説

GRUB2の設定ファイルは「/boot/grub/grub.cfg」です。しかし、「/boot/grub/grub.cfg」ファイルを直接編集することはありません。設定内容は「/etc/default/grub」ファイルおよび「/etc/grub.d」ディレクトリ内のファイルに記述し、「grub-mkconfig」コマンドで設定内容を「/boot/grub/grub.cfg」ファイルに反映させます。

カーネルイメージ、ルートパーティションの指定などは「/etc/grub.d」ディレクトリ内のファイルで行います。

以下は カスタムの設定を記述するファイル「/etc/grub.d/40_custom」の例です。


GRUB2では機能ごとにモジュールが用意されており、モジュールを使う際にはinsmodでロードするモジュールを指定します。

したがって正解は
・insmod
です。

その他の選択肢については以下のとおりです。

・loadmod
このような設定項目はありませんので、誤りです。

・menuentry
GRUB2の設定ファイルにおいてメニューに表示するエントリ名を指定する項目なので、誤りです。

・root
GRUB Legacyの設定ファイルにおいてルートパーティションを指定する項目なので、誤りです。

・set
GRUB2の設定ファイルにおいて設定項目を指定するキーワードなので、誤りです。

参考

ブートローダは記憶装置内のカーネルをロードし、カーネルに制御を移す役割を果たします。
ブートローダは第一段階と第二段階に分かれています。第一段階部分はMBR(Master Boot Record)に格納、第二段階部分は記憶装置内(HDD)の別の場所に格納されています。
第一段階のブートローダはMBRの先頭446バイトの領域にインストールされます。


Linuxで使用するブートローダには主にGRUB(GRand Unified Bootloader)があります。
GRUBは多くのファイルシステムに対応している高機能なブートローダです。GRUBには操作を対話的に行うことができるGRUBシェルと呼ばれるプログラムが付属しています。
GRUBのインストールにはgrub-installコマンドを利用します。

なお、GRUBのバージョンが0.9x系のものを「GRUB Legacy」、1.9以降のものを「GRUB2」と呼びます。
GRUB LegacyとGRUB2では設定方法が異なります。

・GRUB Legacyの場合
GRUB Legacyの設定ファイルは「/boot/grub/menu.lst」、ディストリビューションによっては「/boot/grub/grub.conf」です。

以下は「/boot/grub/menu.lst」の例です。

GRUB Legacyの設定ファイル「/boot/grub/menu.lst」でルートパーティションを指定するには、「root (hdディスク番号,パーティション番号)」と指定します。その際、番号はどちらも0から数えます。

例)
1番目のディスクの1番目のパーティション → root (hd0,0)
1番目のディスクの2番目のパーティション → root (hd0,1)
2番目のディスクの2番目のパーティション → root (hd1,1)

・GRUB2の場合
GRUB2の設定ファイルは「/boot/grub/grub.cfg」です。しかし、「/boot/grub/grub.cfg」ファイルを直接編集することはありません。設定内容は「/etc/default/grub」ファイルおよび「/etc/grub.d」ディレクトリ内のファイルに記述し、「grub-mkconfig」コマンドで設定内容を「/boot/grub/grub.cfg」ファイルに反映させます。

なお、grub-mkconfigコマンドはディストリビューションによって以下の差異が存在します。
・CentOS7ではgrub2-mkconfigという名前でインストールされています。実態はgrub-mkconfigと同じシェルスクリプトです。
・Ubuntuではupdate-grubおよびupdate-grub2というコマンドが存在しますが、いずれもgrub-mkconfigを実行しています。

以下は「/etc/default/grub」の例です。

※GRUB_DEFAULTに「saved」を指定すると、前回選択した項目がデフォルト選択されるようになります。

また、カーネルイメージ、ルートパーティションの指定などは「/etc/grub.d」ディレクトリ内のファイルで行います。

以下は カスタムの設定を記述するファイル「/etc/grub.d/40_custom」の例です。


GRUB2でパーティションを指定するには、「(hdディスク番号,パーティション番号)」と指定します。ディスク番号は0から、パーティション番号は1から数えます。

例)
1番目のディスクの1番目のパーティション → (hd0,1)
1番目のディスクの2番目のパーティション → (hd0,2)
2番目のディスクの2番目のパーティション → (hd1,2)

ブートローダからカーネルに渡された全てのパラメータは「/proc/cmdline」ファイルで確認できます。

上に戻る

GRUB2の設定ファイルについて

公開日 2023/01/04

GRUB2の設定ファイルの情報を調べようと思った際には、どのように調べたらよいのでしょうか?
下記のようにmanやinfoで調べてみたのですが、マニュアルが見つかりません弟子tあ。

$ man grub
No manual entry for grub
$ man GRUP
No manual entry for GRUP
$ info GRUB
info: No menu item 'GRUB' in node '(dir)Top'
$ info grub
info: No menu item 'grub' in node '(dir)Top'

2023/01/04 21:12

ディストリビューションにもよると思いますが、GRUB2 一式がインストールされていればinfo grub でマニュアルが表示されると思います。
RHEL 系であればgrub2-tools パッケージに、Debian 系であればgrub2-common パッケージにinfo ファイルが含まれているようですのでインストールされているか確認してみてください。


コメント

u urax00

2023/01/12 08:37

tnishita2様、情報ありがとうございます。 Windosws上のWSLでUbuntu 20.04.4 LTS確認しているのですが、No menu item 'grub' in nodeと表示されました。 WSLを使っているのがダメだったりしますでしょうか。 $ info grub info: No menu item 'grub' in node '(dir)Top' $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.4 LTS"

t tnishita2

2023/01/12 18:15

私の手元にWSL2 のUbuntu 22.04 環境がありますが、grub2-common パッケージは入っていませんでした。WSL にはブートローダーは不要なため、urax00 さんの環境にも入っていないのでは。 `sudo apt install grub2-common` を実行してインストールしたら、`info grub` でマニュアルが表示されるようになりました。なお`dpkg -L grub2-common | egrep '(man|info)'` を実行すれば、どんなman やinfo が入ったかわかります。

u urax00

2023/02/20 13:09

tnishita2 さん 情報ありがとうございます。 また、返信が遅れてしまって申し訳ありません。。。 ping-tには、定期的にアクセスしていたのですが、なぜか毎回通知を見落としていました。。。 いただけた情報を試したところ、無事内容にアクセスできました。 情報いただき本当にありがとうございました。

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?