GRUB2については、以下の記事を参照してください。

GRUB 2 への移行

GPTのサポートとRAID,LVMのサポートが大きい改善点でしょうかね。

 

手順をざっと記載します。何かの役に立てれば幸いです。

環境

Sun xVM VirtualBox 3.1.0
CentOS 5.4
grub-1.98

# 仮想環境です。

準備

コンパイルに必要なものをインストールします。

# yum -y install gcc bison ruby freetype-devel texinfo

ダウンロード

以下のサイトから最新版をダウンロードします。
(1.98はコンパイルエラーが出たので、一つ古いバージョンをダウンロードしてます。原因追求していないですが、恐らくgccのバージョンが古いためと推測しています)

http://alpha.gnu.org/gnu/grub/

# wget "http://alpha.gnu.org/gnu/grub/grub-1.97.2.tar.gz"

コンパイル&インストール

何も考えずにデフォルトで

# ./configure
# make
# make install

設定ファイル生成

GRUB2の設定ファイルは「/boot/grub/grub.cfg」になります。GRUB Legacyは「grub.conf」でしたね。
GRUB Legacyとは違い、「grub-editenv」コマンドで環境を定義し、「grub-mkconfig」で設定を生成する仕組みになっています。
ここでは、何も考えずにいきなり生成します。

# grub-mkconfig > /boot/grub/grub.cfg

ちなみに私の環境では、以下のファイルが生成されました。(コメント行は省いています)

set default=0
set timeout=5

menuentry "GNU/Linux, with Linux 2.6.18-164.el5" {
        insmod ext2
        set root=(hd0,1)
        search --no-floppy --fs-uuid --set 2174938a-2ac4-4d40-931a-bb30d4e1d7b6
        linux   /vmlinuz-2.6.18-164.el5 root=UUID=16bdbab0-7eb6-4ea0-ac1e-8b14db0428ef ro
        initrd  /initrd-2.6.18-164.el5.img
}
menuentry "GNU/Linux, with Linux 2.6.18-164.el5 (recovery mode)" {
        insmod ext2
        set root=(hd0,1)
        search --no-floppy --fs-uuid --set 2174938a-2ac4-4d40-931a-bb30d4e1d7b6
        linux   /vmlinuz-2.6.18-164.el5 root=UUID=16bdbab0-7eb6-4ea0-ac1e-8b14db0428ef ro single
        initrd  /initrd-2.6.18-164.el5.img
}
menuentry "GNU/Linux, with Linux 2.6.18-164.6.1.el5.centos.plus" {
        insmod ext2
        set root=(hd0,1)
        search --no-floppy --fs-uuid --set 2174938a-2ac4-4d40-931a-bb30d4e1d7b6
        linux   /vmlinuz-2.6.18-164.6.1.el5.centos.plus root=UUID=16bdbab0-7eb6-4ea0-ac1e-8b14db0428ef ro
        initrd  /initrd-2.6.18-164.6.1.el5.centos.plus.img
}
menuentry "GNU/Linux, with Linux 2.6.18-164.6.1.el5.centos.plus (recovery mode)" {
        insmod ext2
        set root=(hd0,1)
        search --no-floppy --fs-uuid --set 2174938a-2ac4-4d40-931a-bb30d4e1d7b6
        linux   /vmlinuz-2.6.18-164.6.1.el5.centos.plus root=UUID=16bdbab0-7eb6-4ea0-ac1e-8b14db0428ef ro single
        initrd  /initrd-2.6.18-164.6.1.el5.centos.plus.img
}

GRUBブートローダを書き込み

最後にMBR(など)にブートローダを書き込んで終了です。
仮想環境で実験している人は、ここでいったんスナップショットを取っておきましょう。(起動しなくなったという最悪の事態を防ぐためです)

# grub-install /dev/hda

再起動して確認してみてください。


恐らくkernelのアップデート時に問題が起きると思うので、元に戻しておいたほうが良いと思います。