RHEL 7 で、以前のバージョンのカーネルでシステムを起動する

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux 7 (すべてのバージョン)

Issue

  • システムに最新バージョンのカーネルをインストールしましたが、以前のバージョンのカーネルでシステムを起動する必要があります。
  • RHEL 7 でカーネルのデフォルトブートエントリーを変更するにはどうすれば良いですか?

Resolution

  • /etc/default/grub ファイルの GRUB_DEFAULT ディレクティブのキーは、デフォルトでは saved の単語になります。これにより、GRUB 2 が、/boot/grub2/grubenv にある GRUB 2 環境ファイルで saved_entry ディレクティブが指定したカーネルをロードします。grub2-set-default コマンドを実行して、別の GRUB レコードをデフォルトに設定できます。これにより、GRUB 2 環境ファイルが更新されます。

  • デフォルトでは、saved_entry 値に、パッケージタイプのカーネルで一番最後にインストールしたカーネルの名前を設定します。これは、UPDATEDEFAULT ディレクティブおよび DEFAULTKERNEL ディレクティブで、/etc/sysconfig/kernel に定義されます。このファイルは、以下のように、root ユーザーで表示できます。

    ~]# cat /etc/sysconfig/kernel
    # UPDATEDEFAULT specifies if new-kernel-pkg should make
    # new kernels the default
    UPDATEDEFAULT=yes
    
    # DEFAULTKERNEL specifies the default kernel package type
    DEFAULTKERNEL=kernel
    
  • システムが特定のメニューエントリーを常に使用するようにするには、そのメニューエントリーの名前をキーとして、/etc/default/grub ファイルの GRUB_DEFAULT ディレクティブに追加します。利用可能なメニューエントリーを表示するには、root 権限で次のコマンドを実行します。

    ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
    
    例: 
    ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2 
    Fedora (4.1.8-100.fc21.x86_64) 21 (Twenty One)                                                <<==== Entry 0               
    Fedora, with Linux 3.17.4-301.fc21.x86_64                                                          <<==== Entry  1
    Fedora, with Linux 0-rescue-e612735898ce44f4ba8217896dcbe494
    
  • GRUB 2 は、カーネルまたはオペレーティングシステムでロードされるデフォルトの順序を変更するのに saved_entry ディレクティブのキーとして数値を使用することをサポートします。最初にロードするカーネルまたはオペレーティングシステムを指定するには、grub2-set-default コマンドにその数値を渡します。たとえば以下のようになります。

    ~]# grub2-set-default 1
    
  • 以下のファイルで、次回のシステム起動時にロードされるカーネルを確認し、/etc/default/grub ファイルのメニューエントリーで数値を照合確認します。

    ~]# cat /boot/grub2/grubenv |grep saved
    
    例:
    ~]# cat /boot/grub2/grubenv |grep saved
    saved_entry=1
    
  • /etc/default/grub に変更するには、以下のように grub.cfg ファイルを再構築します。

  • 以下のように、grub2-mkconfig -o コマンドを実行して、/boot/grub2/grub.cfg ファイルを再構築します。

    • BIOS ベースのマシン: ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
    • UEFI ベースのマシン: ~]# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.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.