./configure --prefix=/opt/grub2 でビルドしてインストール。
空きパーティション(/dev/sda3)に既存のカーネルをコピーして/bootにマウント。
grub-setup -f /dev/sda3 でパーティションブートレコードにgrub2をセットアップ。
grub.cfgを手書き作成。
set timeout=10 set default=0 menuentry "Linux" { set root=(hd0,3) linux /vmlinuz ro root=/dev/sda5 apm=power-off }既存(MBR用)のgrub legacyのmenu.lstに/dev/sda3へのchainload設定を記述。
title sda3 root (hd0,2) chainloader +1
(2010.10.02)
./configure --prefix=/usr --sysconfdir=/etc でビルドしてインストール。
レスキューフロッピーを作る。
# grub-mkrescue --output=grub-rescue.flp # dd if=grub-rescue.flp of=/dev/fd0 bs=1024
フロッピーブートしてコマンド手打ちでシステムを起動できることを確認する。
set root=(hd0,3) linux /vmlinuz ro root=/dev/sda5 apm=power-off boot
40_custom に設定をベタ書きすることにする。
# cd /etc/grub.d # chmod a-x 00_header 10_linux 30_os-prober
#!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. set timeout=30 set default=0 menuentry "Linux (sda5)" { set root=(hd0,3) linux /vmlinuz ro root=/dev/sda5 apm=power-off } menuentry "Linux (sda5) Previous Compiled" { set root=(hd0,3) linux /vmlinuz.old ro root=/dev/sda5 apm=power-off }
# grub-mkconfig > /boot/grub/grub.cfg # grub-install /dev/sda