Show Table of Contents
オペレーティングシステムのインプレースアップグレード後に
25.8. GRUB Legacy から GRUB 2 へのアップグレード
Red Hat Enterprise Linux (RHEL) バージョン 6 から 7 へインプレースアップグレードを行う場合、
GRUB Legacy から GRUB 2 へのアップグレードは自動的に行われませんが、手動で実行できます。以下の理由から GRUB アップグレードを実行します。
- RHEL 7 以降では、
GRUB Legacyは維持されず、アップデートを受信しません。 GRUB Legacyは/boot/ディレクトリーがないと、システム上で起動できません。GRUB 2はより機能が豊富で、信頼性に優れています。GRUB 2は、より多くのハードウェア設定、ファイルシステム、ドライブレイアウトをサポートしています。
アップグレードの要件
Red Hat Enterprise Linux 7 システムをアップグレードする前に、
GRUB Legacy の手動でのバックアップを実行してください。GRUB Legacy は、grub パッケージで利用できる点に注意してください。
手順25.2 GRUB Legacy の手動でのバックアップを作成
- grub パッケージをダウンロードします。
~]#
yum reinstall -y --downloadonly grub - ダウンロードパッケージを見つけます。
~]#
find /var/cache/yum/ | grep "grub"注記
yumのデフォルトキャッシュロケーションを変更していない場合、キャッシュは/var/cache/yum/ディレクトリーにあります。yumのデフォルトキャッシュロケーションを変更している場合は、設定を確認して見つけます。詳細は、 Working with Yum Cache と Configuring Yum and Yum Repositories を参照してください。 /root/ディレクトリーなど、パッケージを安全な場所にコピーします。~]#
cp /var/cache/yum/x86_64/6Server/rhel/packages/grub-0.97-99.el6.x86_64.rpm /root/重要
grub パッケージを/boot/ディレクトリーにコピーしないでください。/boot/に十分な空きスペースがないと、RHEL 6 から RHEL 7 へのインプレースアップグレードに失敗することがあります。詳細は、プレアップグレードおよびアップグレードのドキュメントを参照してください。
オペレーティングシステムのインプレースアップグレード後に GRUB Legacy から GRUB 2 へアップグレード。
手順25.3 GRUB Legacy から GRUB 2 へのアップグレード
- バックアップから grub パッケージをインストールします。
~]#
rpm --install --force --nodeps grub-0.97-99.el6.x86_64.rpmこの手順は、GRUB LegacyからGRUB 2へのアップグレードが途中で失敗した場合のリカバリーオプションを確保します。パッケージには様々なバージョンがあるかもしれないので、バックアップしたパッケージの正確な名前を使用する必要がある点に注意してください。 - grub2 パッケージがインストールされていることを確認します。RHEL 7 へのアップグレード後に grub2 がシステム上にない場合、以下を実行して手動でインストールできます。
~]#
yum install grub2
起動可能なデバイスのファイルを決める
- 起動可能なデバイス向けに
GRUB Legacyの表示記号を探します。そのためには、GRUB Legacy設定ファイルの/boot/grub/grub.confを表示し、root行を探します。# grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/mapper/vg_rhel68-lv_root # initrd /initrd-[generic-]version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux Server (2.6.32-642.4.2.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-642.4.2.el6.x86_64 ro root=/dev/mapper/vg_rhel68-lv_root rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_rhel68/lv_root rd_LVM_LV=vg_rhel68/lv_swap rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-642.4.2.el6.x86_64.img title Red Hat Enterprise Linux 6 (2.6.32-642.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=/dev/mapper/vg_rhel68-lv_root rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_rhel68/lv_root rd_LVM_LV=vg_rhel68/lv_swap rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-642.el6.x86_64.img
各メニューエントリーについて、root行は起動可能なデバイスを指定しています。この例では、hd0,0が起動可能なデバイスです。 /boot/grub/device.mapが正確でない場合のみ、この手順を実行します。この状況は、たとえば、ハードウェア設定の変更後に発生することがあります。/boot/grub/device.mapを再作成します。~]#
grub-install --recheck /dev/sda古い設定は/boot/grub/device.map.backupに自動的にバックアップが作成されます。- 前の手順でデバイスマッピング設定が壊れてしまった場合は、バックアップを復元します。
~]#
rm /boot/grub/device.map~]#cp /boot/grub/device.map.backup /boot/grub/device.map
- デバイスファイルに対する
GRUB Legacyのデバイスの表示記号のマッピングを決定します。そのためには、手順 1 で見つけたデバイスをとり、/boot/grub/device.mapファイルで対応するエントリーを見つけます。# this device map was generated by anaconda (hd0) /dev/sda (hd1) /dev/sdb
この例では、デバイスhd0のデバイスファイルは/dev/sdaとして一覧に表示されています。デバイスファイルをメモします。これは次の手順で使用します。
GRUB 2 設定ファイルの生成
元の
GRUB Legacy 設定を削除せずに、 GRUB 2 設定を追加します。GRUB 2 が正常に作動しない場合に備えて、GRUB Legacy 設定を残します。
GRUB 2ファイルを/dev/sdXディスクの/boot/grub/ディレクトリーにインストールします。~]#
grub2-install --grub-setup=/bin/true /dev/sdX/dev/sdX を 「起動可能なデバイスのファイルを決める」 で決めた起動可能なデバイスファイルに置き換えます。--grub-setup=/bin/trueオプションで、古いGRUB Legacy設定が削除されないようにします。警告
設定ファイル拡張子の違いに気を付けてください。.confはGRUB.cfgは、GRUB 2向けです。
次の手順で、誤って古いGRUB設定ファイルを上書きしないよう気を付けてください。/boot/grub2/grub.cfgを生成します。~]#
grub2-mkconfig -o /boot/grub2/grub.cfg注記
生成したGRUB 2設定ファイルをカスタマイズするには、「GRUB 2 設定ファイルのカスタマイズ」 を参照してください。変更は、/boot/grub2/grub.cfgに直接するのではなく、/etc/default/grubにする必要があります。/boot/grub2/grub.cfgに直接変更を加えると、ファイルが再生成されるたびに変更が失われることになります。
GRUB をインストールしたまま GRUB 2 をテスト
GRUB Legacy 設定を削除せずに GRUB 2 をテストします。GRUB Legacy 設定は、GRUB 2 設定の検証が終わるまでそのままにします。設定を変更してしまうと、システムが起動できなくなることがあります。安全に GRUB 2 設定をテストするために、GRUB 2 を GRUB Legacy から起動します。
- 新しいセクションを
/boot/grub/grub.confに追加します。title GRUB 2 Test root (hd0,0) kernel /grub2/i386-pc/core.img boot
(hd0,0) をGRUB Legacyの起動可能なデバイスの表示記号と置き換えます。 - システムを再起動します。
GRUB Legacyメニューが表示されたら、GRUB 2 Testエントリーを選択します。GRUB 2メニューが表示されたら、起動するカーネルを選択します。- 上記がうまく機能しない場合、再起動し、次の起動時に
GRUB 2 Testエントリーを選択 しない でください。
GRUB Legacy の置き換えと削除
GRUB 2 が正常に機能したら、GRUB Legacy を置き換え、システムから削除します。
GRUB Legacy起動セクターをGRUB 2ブートローダーで上書きします。~]#
grub2-install /dev/sda- grub パッケージをアンインストールします。
~]#
yum remove grub
GRUB 2 へのアップグレードはこれで完了です。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.