Linux - GRUB / GRUB 2



 ◆ ブートローダのインストール

 ブートローダとは、ハードディスク等からOSを起動するためのプログラムのこと。Linuxのブートローダ
 にはGRUBが標準的に採用されています。GRUBにはバージョン0.9系の
GRUB Legacyとバージョン1.9系
 の
GRUB 2があります。GRUBは、多数のファイルシステムを認識可能でありシェル機能も搭載しています。
 このGRUBをインストールするためには
grub-installコマンドを使用します。以下はコマンドの実行例です。

 ◆ 実行例 : /deb/hda の MBR(起動ドライブの最初のセクタ)領域にGRUBをインストール
 # grub-install /dev/hda


 ◆ GRUBのバージョン確認コマンド (CentOS 6.4 での出力結果)

 # grub-install -v
 
grub-install (GNU GRUB 0.97)

 ◆ GRUBのバージョン確認コマンド (Debian 6.0.7 での出力結果)

 # grub-install -v
 
grub-install (GNUB ) 1.98+20100804 + squeeze1




 ◆ ブートローダの設定 - GRUBの設定ファイル

 GRUB Legacy(v0.9)の設定ファイルは、
/boot/grub/menu.lstであり、必要に応じて編集してGRUBの動作
 を変更できます。GRUB Legacyの設定ファイルの中身を確認してみましょう。※以下はCentOS6.4での確認。

 


番号 説明
@  ブートデバイスの定義。GRUBのインストール先。
A  デフォルトで起動するエントリ番号。デフォルトは1番目のエントリ。
B  メニューを表示する時間。デフォルトは5秒間。
C  メニューの表示画面の画像。
D  起動時に選択メニューを表示しない。
E  メニューに表示されるエントリ名。1番目のエントリ。
F  ルートファイルシステムの指定。GRUBでは、/dev/sda1を(hd0,0)、/dev/sda2を(hd0,1)と表示。
G  起動するカーネルイメージファイルと起動オプションの指定
H  初期RAMディスクファイルの指定

 ※ Red hat系OSの場合、/boot/grub/menu.lst ファイルは、/boot/grub/grub.conf ファイルのシンボリックリンク。


 ◆ ブートローダの設定 - GRUB 2の設定ファイル

 GRUB 2(v1.9)の設定ファイルは、
/boot/grub/grub.cfg です。ただし、デフォルトでは生成されていない
 ファイルとなります。GRUB Legacyの設定ファイル(/boot/grub/menu.lst)とは異なり設定ファイルを
 直接編集することはできません。先ず、/etc/default/grub で設定を行う必要があります。そして設定後に
 update-grub(
update-grub2)コマンドを実行する事で、/boot/grub/grub.cfg ファイルが生成されます。

 1. /etc/default/gurb で設定変更
 2. update-grub2 コマンドにより、/boot/grub/grub.cfg ファイルが生成


 ◆ /etc/default/grub の中身

 


 ◆ /etc/default/grub の設定パラメータ

番号 設定パラメータ 説明
@  GRUB_DEFAULT  デフォルトで起動するOSの番号
A  GRUB_TIMEOUT  デフォルトのOSを起動するまでの秒数
B  GRUB_CMDLINE_LINUX_DEFAULT  ブートオプション
C  GRUB_CMDLINE_LINUX  カーネルに渡すブートオプション


 ◆ update-grub2 コマンドの実行

 



 ◆ ブートローダの起動 - カーネルオプションの設定

 通常は、ブートローダの設定ファイル(/boot/grub/menu.lst)にあらかじめカーネルオプションを設定して
 おきますがシステムブート時にカーネルオプションを設定することもできます。ブートローダの起動画面で
 (GRUBメニューの表示で)、aキーを入力すると編集用画面に移行します。例えば、以下の実行例のように
 シングルユーザモードで起動させたり、Linuxカーネルの起動時に /bin/sh シェルを起動させたりできます。

 ◆ シングルモード (single) で起動するためのカーネルオプションの設定 - 語尾に single とだけ入力
 grub append> ro root=LABEL=/ rhgp quiet single


 ◆ 起動時に、/bin/shシェルが起動するためのカーネルオプションの設定 - 語尾に init=/bin/sh とだけ入力
 grub append> ro root=LABEL=/ rhgp quiet init=/bin/sh


 CentOSでは、バージョンによりGRUBの編集用画面が少し異なります。次ページでCentOS6.4の場合の
 編集用画面を紹介します。なお、ブートローダ起動時に設定されたカーネルオプションは
/proc/cmdline
 ファイルに記載されているので、catコマンドを使用したファイルの中身を確認してみましょう。

 # cat /proc/cmdline


 ◆ 参考 : GRUB - ルートファイルシステムの指定の表記例

パーティション デバイスファイル名 GRUBの表記
1台目のハードディスクの1番目のパーティション /dev/sda1 (hd0,0)
1台目のハードディスクの2番目のパーティション /dev/sda2 (hd0,1)
2台目のハードディスクの1番目のパーティション /dev/sdb1 (hd1,0)
2台目のハードディスクの2番目のパーティション /dev/sdb2 (hd1,1)



Linux 技術入門

Copyright(C) 2002-2024 ネットワークエンジニアとして All Rights Reserved