Linux Master: GRUB2 補足

CentOS 7.2 sample

CentOS では、後方互換のため GRUB2 に関するコマンドやファイルはすべて grub2* となっているが、他のディストリビューションでは grub* となっているため注意が必要。
GRUB2 では/etc/grub.d/に格納されている複数のスクリプトと、/boot下にあるカーネル情報を元に grub2-mkconfig(8)* で、/boot/grub2/grub.cfg を自動生成します。 よって grub.cfg を直接編集せずに、/etc/grub.d/下のスクリプトを変更する事で設定を変更します。
(* ディストリビューションにより、grub-mkconfig を使う事もあります) また、/etc/default/grub に環境変数定義があり、デフォルト値を変更できます。 /etc/grub.d/ スクリプト README によると、00で始まるスクリプトは予約で 10で始まるものがブート時に参照されるもの、20で始まるものはブート後に起動するサードパーティソフトとして割り当てられています。

スクリプト概要
00_headerビデオドライバなどブートに必要なモジュールの読込
00_tunedtuned(8) による動的な設定変更(チューニング)
01_usersコンソールユーザ認証
/boot/grub2/user.cfg があれば発動
10_linuxBoot(カーネル選択) メニューの生成
CentOS7 では grub2-setpassword(8) により、Bootメニューでのユーザ認証が可能。ユーザはroot固定でパスワードは暗号化されて /boot/grub2/user.cfg に登録される。


但し7.2の日本語はバグがあり、以下のようにパスワードプロンプトが挿入されてしまうため、当該行を削除する必要がある。
英語版 user.cfg
GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.6073559920D6A30DD5142375C8998E48DC60FF32EFE3C4B2894A916419E...

日本語版 user.cfg (NG)
GRUB2_PASSWORD=パスワードを入力してください: 
grub.pbkdf2.sha512.10000.5133FD3D17EC366A0D4BB5F515E8BAC0816FF5AEE15F5DC2B0C0738559524D1EF7F660D6A2...

主なコマンド

パラメータ解説
menuentryBootメニューのタイトル
linux16 /boot/vmlinuz*カーネル起動コマンド
initrd16 /boot/initramfs*初期RAMディスク展開コマンド

linux16 コマンドオプション

パラメータ解説
root=ファイルパスルートディレクトリの場所
ro読み込み専用
rd.lvm.lvLVM用パラメータ VloumeGroup/LogicalVolume
singleシングルユーザモードによる起動
rhgbRed Hat Graphical Boot (進捗棒グラフ表示/Progress bar)の使用
quietH/W初期化メッセージ(dmesg)非表示
コンソールで操作する際に、キーボードレイアウトはANSIになため、操作に注意が必要。ちなみに [=] は、[~/^/へ]刻印のキーが割り当てられます。
外部リンク参照: ☞USキーボードと日本のキーボードの違い