grubbyを使用したカーネルの管理
grubbyツールを使用すると、Oracle LinuxインスタンスのGRUB構成を定義するgrub.cfgファイルからの情報の読取りおよび永続的な変更を行うことができます。grubbyコマンドを使用すると、カーネル構成の表示、デフォルトのブート・カーネルの指定、追加のカーネル・コマンドライン・ブート・パラメータの構成、およびカーネル・ブート(GRUB)メニューの変更を行うことができます。詳細は、grubby(8)マニュアル・ページを参照してください。
インストール済カーネルおよびデフォルト・カーネルのリスト
grubbyコマンドを使用して、Oracle Linuxインスタンスにインストールされているすべてのカーネル、カーネルに関する構成情報、デフォルトであるカーネルおよびアクティブなカーネルを表示します。
- コマンドラインから、管理権限を使用してSSHを使用してインスタンスに接続します。
- 次のいずれかのオプションを使用して、インストールされているカーネルをリストします。インストールされているカーネルのリストは、Oracle Linuxのバージョンによって異なる場合があります。
grubbyおよび--info=ALLコマンド・オプションを使用してカーネルをリストし、インストールされた各カーネルに関連付けられたブート構成を確認します。sudo grubby --info=ALLindex=0 <--Each boot entry is assigned an index, which is a number that indicates its position in the GRUB menu kernel="/boot/vmlinuz-6.12.0-102.36.5.2.el10uek.x86_64" <--Full path to the kernel image args="ro $tuned_params LANG=en_US.UTF-8 console=tty0 console=ttyS0,115200 rd.luks=0 <--Command-line arguments passed to the kernel when it boots rd.md=0 rd.dm=0 rd.lvm.vg=ocivolume rd.lvm.lv=ocivolume/root rd.net.timeout.dhcp=10 rd.net.timeout.carrier=5 rd.iscsi.param=node.session.timeo.replacement_timeout=6000 net.ifnames=1 nvme_core.shutdown_timeout=10 ipmi_si.tryacpi=0 ipmi_si.trydmi=0 libiscsi.debug_libiscsi_eh=1 loglevel=4 crash_kexec_post_notifiers crashkernel=1G-64G:448M,64G-:512M netroot=iscsi rd.iscsi.firmware=1" root="/dev/mapper/ocivolume-root" <--Root partition device initrd="/boot/initramfs-6.12.0-102.36.5.2.el10uek.x86_64.img $tuned_initrd" <--Path to the initial RAM disk (initrd) image title="Oracle Linux Server (6.12.0-102.36.5.2.el10uek.x86_64 with Unbreakable Enterprise Kernel) 10.0" <--Title displayed in the GRUB menu at startup id="3d18a447860027858b15c8276ccc1ab3-6.12.0-102.36.5.2.el10uek.x86_64" <--Unique identifier for the boot entry index=1 kernel="/boot/vmlinuz-6.12.0-55.27.1.0.1.el10_0.x86_64" ... title="Oracle Linux Server (6.12.0-55.27.1.0.1.el10_0.x86_64) 10.0" ... index=2 kernel="/boot/vmlinuz-0-rescue-3d18a447860027858b15c8276ccc1ab3" ... title="Oracle Linux Server (0-rescue-3d18a447860027858b15c8276ccc1ab3 with Unbreakable Enterprise Kernel) 10.0" ...sudo grubby --info=ALLの出力は、起動時にカーネル・ブート・メニューに表示される内容を予測します。たとえば、前の出力でインデックス番号とタイトルを使用すると、カーネルブートメニューに次のように表示されます。Oracle Linux Server (6.12.0-102.36.5.2.el10uek.x86_64 with Unbreakable Enterprise Kernel) 10.0 Oracle Linux Server (6.12.0-55.27.1.0.1.el10_0.x86_64) 10.0 Oracle Linux Server (0-rescue-3d18a447860027858b15c8276ccc1ab3 with Unbreakable Enterprise Kernel) 10.0/bootディレクトリにインストールされているカーネルをリストします。sudo ls -l /boot/vmlinuz*-rwxr-xr-x. 1 root root 17048272 Aug 19 20:35 /boot/vmlinuz-0-rescue-3d18a447860027858b15c8276ccc1ab3 -rwxr-xr-x. 1 root root 17048272 Aug 13 00:00 /boot/vmlinuz-6.12.0-102.36.5.2.el10uek.x86_64 -rwxr-xr-x. 1 root root 15852240 Aug 14 00:00 /boot/vmlinuz-6.12.0-55.27.1.0.1.el10_0.x86_64
- ブート時に使用するデフォルトのカーネルとして構成されているカーネルと、そのタイトルと位置をカーネルブートメニューに表示します。デフォルトのカーネルは、Oracle Linuxのバージョンによって異なります。
- デフォルトのカーネルを表示します。
sudo grubby --default-kernel/boot/vmlinuz-6.12.0-102.36.5.2.el10uek.x86_64 - デフォルトのカーネルのタイトルを表示します。
sudo grubby --default-title出力は、Oracle Linuxインスタンスの起動時にカーネル・ブート・メニューに表示される値と一致します。
Oracle Linux Server (6.12.0-102.36.5.2.el10uek.x86_64 with Unbreakable Enterprise Kernel) 10.0 - カーネルブートリスト内のデフォルトのカーネルのインデックス位置を表示します。
sudo grubby --default-index0
- デフォルトのカーネルを表示します。
- インスタンスで実行されているカーネルを確認します。
uname -r6.12.0-102.36.5.2.el10uek.x86_64次の理由により、デフォルトのカーネルと実行中のカーネルが同一でない場合があります。
- 新しいカーネルをインストールしましたが、システムをリブートしていません。
- システムのリブート中に、別のカーネルをアクティブカーネルとして手動で選択しました。
- デフォルトのカーネルを手動で更新しましたが、まだシステムをリブートしていません。
デフォルトのカーネルを変更
grubbyコマンドを使用して、GRUB 2構成にデフォルトのブート・カーネルを設定します。
- コマンドラインから、管理権限を使用してSSHを使用してインスタンスに接続します。
- デフォルトのカーネルを表示します。
sudo grubby --default-kernel例:
/boot/vmlinuz-6.12.0-102.36.5.2.el10uek.x86_64 -
grubby --set-defaultコマンドを使用して、カーネルへのフルパスを必ず指定するようにデフォルトのカーネルを変更します。カーネルパスは、Step 2 of Listing Installed Kernels and Default Kernelのいずれかのオプションを使用して取得できます。例:
sudo grubby --set-default /boot/vmlinuz-6.12.0-55.27.1.0.1.el10_0.x86_64変更はすぐに有効になり、システムのリブート後も保持されます。
- デフォルトのカーネル変更を確認します。
sudo grubby --default-kernel例:
/boot/vmlinuz-6.12.0-55.27.1.0.1.el10_0.x86_64 - (オプション)
grubby --set-default-indexコマンドを使用して、新しいデフォルト・カーネルをカーネル・ブート・メニューの最初の位置に設定します。新しいデフォルトカーネルは、カーネルブートメニューの最初に表示されます。次に例を示します。sudo grubby --set-default-index=0Oracle Linux Server (6.12.0-55.27.1.0.1.el10_0.x86_64) 10.0 Oracle Linux Server (6.12.0-102.36.5.2.el10uek.x86_64 with Unbreakable Enterprise Kernel) 10.0 Oracle Linux Server (0-rescue-3d18a447860027858b15c8276ccc1ab3 with Unbreakable Enterprise Kernel) 10.0 - インスタンスを再起動して、新しいデフォルト・カーネルで起動します。
カーネル・ブート・パラメータの変更
grubby --update-kernelコマンドを使用して、新しい引数の追加、既存の引数の値の変更、または特定のカーネルまたはすべてのカーネルの引数の削除を行います。引用符で囲まれたリスト内のオプションごとに、各引数をスペースで区切って複数の引数を指定できます。同じ操作で引数を追加および削除できます。--argsオプションを使用する場合、引数がすでに存在する場合は、新しい値が古い値を置き換えます。
- コマンドラインから、管理権限を使用してSSHを使用してインスタンスに接続します。
grubby --update-kernelコマンドを使用して、特定のカーネル・ブート引数を変更または追加します。たとえば、カーネル・パラメータを更新して、次のLANG引数を変更します。- すべてのカーネル
sudo grubby --update-kernel=ALL --args LANG=en_GB.UTF-8 - 1つのカーネル
sudo grubby --update-kernel /boot/vmlinuz-6.12.0-102.36.5.2.el10uek.x86_64 --args LANG=en_GB.UTF-8
- すべてのカーネル
- 変更が有効になったことを確認します。
sudo grubby --info=ALL- すべてのカーネル
index=0 kernel="/boot/vmlinuz-6.12.0-102.36.5.2.el10uek.x86_64" args="ro $tuned_params console=tty0 console=ttyS0,115200 rd.luks=0 rd.md=0 rd.dm=0 rd.lvm.vg=ocivolume rd.lvm.lv=ocivolume/root rd.net.timeout.dhcp=10 rd.net.timeout.carrier=5 rd.iscsi.param=node.session.timeo.replacement_timeout=6000 net.ifnames=1 nvme_core.shutdown_timeout=10 ipmi_si.tryacpi=0 ipmi_si.trydmi=0 libiscsi.debug_libiscsi_eh=1 loglevel=4 crash_kexec_post_notifiers crashkernel=1G-64G:448M,64G-:512M netroot=iscsi rd.iscsi.firmware=1 LANG=en_GB.UTF-8" ... index=1 kernel="/boot/vmlinuz-6.12.0-55.27.1.0.1.el10_0.x86_64" args="ro $tuned_params console=tty0 console=ttyS0,115200 rd.luks=0 rd.md=0 rd.dm=0 rd.lvm.vg=ocivolume rd.lvm.lv=ocivolume/root rd.net.timeout.dhcp=10 rd.net.timeout.carrier=5 rd.iscsi.param=node.session.timeo.replacement_timeout=6000 net.ifnames=1 nvme_core.shutdown_timeout=10 ipmi_si.tryacpi=0 ipmi_si.trydmi=0 libiscsi.debug_libiscsi_eh=1 loglevel=4 crash_kexec_post_notifiers crashkernel=1G-64G:448M,64G-:512M netroot=iscsi rd.iscsi.firmware=1 LANG=en_GB.UTF-8" ... - 1つのカーネル
index=0 kernel="/boot/vmlinuz-6.12.0-102.36.5.2.el10uek.x86_64" args="ro $tuned_params console=tty0 console=ttyS0,115200 rd.luks=0 rd.md=0 rd.dm=0 rd.lvm.vg=ocivolume rd.lvm.lv=ocivolume/root rd.net.timeout.dhcp=10 rd.net.timeout.carrier=5 rd.iscsi.param=node.session.timeo.replacement_timeout=6000 net.ifnames=1 nvme_core.shutdown_timeout=10 ipmi_si.tryacpi=0 ipmi_si.trydmi=0 libiscsi.debug_libiscsi_eh=1 loglevel=4 crash_kexec_post_notifiers crashkernel=1G-64G:448M,64G-:512M netroot=iscsi rd.iscsi.firmware=1 LANG=en_GB.UTF-8" ... index=1 kernel="/boot/vmlinuz-6.12.0-55.27.1.0.1.el10_0.x86_64" args="ro $tuned_params LANG=en_US.UTF-8 console=tty0 console=ttyS0,115200 rd.luks=0 rd.md=0 rd.dm=0 rd.lvm.vg=ocivolume rd.lvm.lv=ocivolume/root rd.net.timeout.dhcp=10 rd.net.timeout.carrier=5 rd.iscsi.param=node.session.timeo.replacement_timeout=6000 net.ifnames=1 nvme_core.shutdown_timeout=10 ipmi_si.tryacpi=0 ipmi_si.trydmi=0 libiscsi.debug_libiscsi_eh=1 loglevel=4 crash_kexec_post_notifiers crashkernel=1G-64G:448M,64G-:512M netroot=iscsi rd.iscsi.firmware=1" ...
- すべてのカーネル
- インスタンスを再起動して、新しいカーネル構成でブートします。
grubbyを使用せずにカーネル・ブート・パラメータを変更するには、
/etc/default/grubファイルを直接編集し、GRUB_CMDLINE_LINUX定義のブート・パラメータ設定を変更します。たとえば、LANG=en_US.UTF-8をLANG=en_GB.UTF-8に変更します。GRUB_CMDLINE_LINUX="crashkernel=auto LANG=en_GB.UTF-8 console=tty0 console=ttyS0
,115200 rd.luks=0 rd.md=0 rd.dm=0 rd.lvm.vg=ocivolume rd.lvm.lv=ocivolume/root r
d.net.timeout.carrier=5 netroot=iscsi:169.254.0.2:::1:iqn.2015-02.oracle.boot:ue
fi rd.iscsi.param=node.session.timeo.replacement_timeout=6000 net.ifnames=1 nvme
_core.shutdown_timeout=10 ipmi_si.tryacpi=0 ipmi_si.trydmi=0 libiscsi.debug_libi
scsi_eh=1 loglevel=4 ip=dhcp,dhcp6 rd.net.timeout.dhcp=10 crash_kexec_post_notif
iers"次のシステムリブート時に変更を有効にするには、GRUB 2構成を再構築します。 sudo grub2-mkconfig -o /boot/grub2/grub.cfg