Translated message

A translation of this page exists in English.

Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

grub2-mkconfig がカーネルメニューのエントリーを適切な順序にソートしない

Solution In Progress - Updated -

Environment

  • Red Hat Enterprise Linux 7
  • バージョン grub2-2.02-0.16.el7 以前の grub2

Issue

  • grub2-mkconfig コマンドを実行すると、カーネルの起動順序が期待通りにならず、最新カーネルが 0 (最初) の位置になりません。

  • grub2-mkconfig コマンドが、/boot/grub2/grub.cfg ファイルに適切なカーネルメニューエントリーを追加しません。これにより、システムが以前のカーネルで起動します。

  • 最新 (または複数) のカーネルを RHEL7 にインストールし、grub2-mkconfig -o /boot/grub2/grub.cfg コマンドを実行します。しかし、最新カーネルから古いカーネルにエントリーをソートすることができません。確認するには、以下のコマンドを実行します。

    grub2-mkconfig | grep ^menuentry
    

Resolution

新しい grub2 パッケージが利用できるまでの回避方法

デフォルトでは、カーネルアップデート後は GRUB2 がデフォルトで最新カーネルを起動します。この回避方法は、grub2-mkconfig が手動で実行されたか、今後実行する場合に限り必要になります。

  1. grub2-mkconfig が報告する menuentry 行の順で、どれが最新 (もしくはどれをデフォルトにすべき) かを確認します。

    grub2-mkconfig | grep ^menuentry
    

    以前の GRUB バージョンと同様、メニューエントリーのインデックスは 0 から始まります。

    このバグが修正されるまで、最新のカーネルが 1 番目 (0)、2 番目 (1)、または 3 番目 (2) のエントリーとして表示されます。デフォルトにしたい番号を書き留めます。

  2. /etc/default/grubGRUB_DEFAULT=n を設定します。ここで n は、上で説明した期待されるインデックス番号になります。
    たとえば、2 番目のカーネルが最新の場合は、以下のコマンドを実行して GRUB_DEFAULT=1 を設定します。

    sed -i '/^GRUB_DEFAULT=/s/=.*/=1/' /etc/default/grub
    
  3. GRUB2 設定を再構築します。

    grub2-mkconfig -o /etc/grub2.cfg
    
  4. 新しいカーネルアップデートをインストールすると、menuentry 0 は、GRUB_DEFAULT の設定に関わらず再度デフォルトになりますが、カーネルの rpm ポストインストールスクリプトによって、新しいカーネルが menuentry 0 として適切に追加されます。

    • この回避方法で GRUB2 を確認すると、デフォルト は menuentry 1 または 2 に設定されている場合があります。しかし、カーネルをアップデートすると GRUB2 で最初のエントリー (0) がデフォルトに設定されることで、別のエントリーを選択する必要があると誤解されるかも知れません。

    • これが問題となる場合は、新しいカーネルをインストールしたら grub2-mkconfig で GRUB2 設定を再構築してください。

  5. この問題への修正 (アップデートした grub2 パッケージ) を適用する場合は、/etc/default/grubGRUB_DEFAULT=0 を設定し、以下のようなコマンドで設定を再構築することが不可欠になります。

    sed -i '/^GRUB_DEFAULT=/s/=.*/=0/' /etc/default/grub
    grub2-mkconfig -o /etc/grub2.cfg
    

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments