助け合いフォーラム
正解
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の設定ファイルについて
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'
ディストリビューションにもよると思いますが、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"