助け合いフォーラム
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」の例です。
「insmod」にはロードするモジュールを指定します。GRUB2では、機能ごとに用意されたモジュールを動的にロードできます。
モジュールファイルは通常「/boot/grub/i386-pc/」や「/boot/grub/x86_64-efi/」に「XX.mod」の形式で格納されています。insmodには「.mod」を除いた形式で指定します(例:gzio.modを指定する → insmod gzio)。
したがって正解は
・insmod
です。
その他の選択肢については以下のとおりです。
・loadmod
このような設定項目はありませんので、誤りです。
・menuentry
GRUB2の設定ファイルにおいてメニューに表示するエントリ名を指定する項目なので、誤りです。
・root
GRUB Legacyの設定ファイルにおいてルートパーティションを指定する項目なので、誤りです。
・set
GRUB2の設定ファイルにおいて設定項目を指定するキーワードなので、誤りです。
カーネルイメージ、ルートパーティションの指定などは「/etc/grub.d」ディレクトリ内のファイルで行います。
以下は カスタムの設定を記述するファイル「/etc/grub.d/40_custom」の例です。
「insmod」にはロードするモジュールを指定します。GRUB2では、機能ごとに用意されたモジュールを動的にロードできます。
モジュールファイルは通常「/boot/grub/i386-pc/」や「/boot/grub/x86_64-efi/」に「XX.mod」の形式で格納されています。insmodには「.mod」を除いた形式で指定します(例:gzio.modを指定する → insmod gzio)。
したがって正解は
・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コマンドを利用します(ディストリビューション等により、grub2-install)。
例)1番目のディスクにGRUBをインストールする場合
# grub-install /dev/sda
なお、GRUBのバージョンが0.9x系のものを「GRUB Legacy」、1.9以降のものを「GRUB2」と呼びます。
通常、GRUB2のファイルはGRUB Legacyと同様に「/boot/grub/」以下に格納されますが、ディストリビューションによっては「/boot/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))。
・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」の例です。
「menuentry 'メニューのエントリ名' [オプション] { 設定 }」の構文で設定を記述します。
「insmod」にはロードするモジュールを指定します。GRUB2では、機能ごとに用意されたモジュールを動的にロードできます。
モジュールファイルは通常「/boot/grub/i386-pc/」や「/boot/grub/x86_64-efi/」に「XX.mod」の形式で格納されています。insmodには「.mod」を除いた形式で指定します(例:gzio.modを指定する → insmod gzio)。
「set root=(hdディスク番号,パーティション番号)」は、ルートパーティションの指定です。GRUB2では、ディスク番号は0から、パーティション番号は1から数えます(例:1番目のディスクの1番目のパーティション → set root=(hd0,1))。
ブートローダからカーネルに渡された全てのパラメータは「/proc/cmdline」ファイルで確認できます。
ブートローダは第一段階と第二段階に分かれています。第一段階部分はMBR(Master Boot Record)に格納、第二段階部分は記憶装置内(HDD)の別の場所に格納されています。
第一段階のブートローダはMBRの先頭446バイトの領域にインストールされます。
Linuxで使用するブートローダには主にGRUB(GRand Unified Bootloader)があります。
GRUBは多くのファイルシステムに対応している高機能なブートローダです。GRUBには操作を対話的に行うことができるGRUBシェルと呼ばれるプログラムが付属しています。
GRUBのインストールにはgrub-installコマンドを利用します(ディストリビューション等により、grub2-install)。
例)1番目のディスクにGRUBをインストールする場合
# grub-install /dev/sda
なお、GRUBのバージョンが0.9x系のものを「GRUB Legacy」、1.9以降のものを「GRUB2」と呼びます。
通常、GRUB2のファイルはGRUB Legacyと同様に「/boot/grub/」以下に格納されますが、ディストリビューションによっては「/boot/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))。
・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」の例です。
「menuentry 'メニューのエントリ名' [オプション] { 設定 }」の構文で設定を記述します。
「insmod」にはロードするモジュールを指定します。GRUB2では、機能ごとに用意されたモジュールを動的にロードできます。
モジュールファイルは通常「/boot/grub/i386-pc/」や「/boot/grub/x86_64-efi/」に「XX.mod」の形式で格納されています。insmodには「.mod」を除いた形式で指定します(例:gzio.modを指定する → insmod gzio)。
「set root=(hdディスク番号,パーティション番号)」は、ルートパーティションの指定です。GRUB2では、ディスク番号は0から、パーティション番号は1から数えます(例:1番目のディスクの1番目のパーティション → set root=(hd0,1))。
ブートローダからカーネルに渡された全てのパラメータは「/proc/cmdline」ファイルで確認できます。
GRUB2の設定ファイルについて
u
urax00
投稿日 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"