4.7. 使用 GRUB 配置文件更改引导条目

/etc/default/grub GRUB 配置文件包含 GRUB_CMDLINE_LINUX 键,它列出了要添加到 Linux 内核的引导条目的内核命令行参数。例如:

GRUB_CMDLINE_LINUX="crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap"

要更改引导条目,请使用 GRUB_CMDLINE_LINUX 值的内容覆盖 Boot Loader 规范(BLS)片断。

先决条件

  • 全新的 RHEL 9 安装。

流程

  1. 使用 grubby 在安装后脚本中为各个内核添加或删除内核参数:

    # grubby --update-kernel <PATH_TO_KERNEL> --args "<NEW_ARGUMENTS>"

    例如,在所选内核中添加 noapic 参数:

    # grubby --update-kernel /boot/vmlinuz-5.14.0-362.8.1.el9_3.x86_64 --args "noapic"

    参数传播到 BLS 代码片段,但不传播到 /etc/default/grub 文件中。

  2. 使用 /etc/default/grub 文件中 GRUB_CMDLINE_LINUX 值的内容覆盖 BLS 片断:

    # grub2-mkconfig -o /boot/grub2/grub.cfg --update-bls-cmdline
    Generating grub configuration file …​
    Adding boot menu entry for UEFI Firmware Settings …​
    done
    注意

    其他更改,如对 GRUB_TIMEOUT 键所做的更改(也包含在 /etc/default/grub GRUB 配置文件中),默认情况下传播到新的 grub.cfg 中。

验证

  1. 重启您的操作系统。
  2. 验证参数是否包含在 /proc/cmdline 文件中。

    例如,/proc/cmdline 包含 noapic 内核参数:

    BOOT_IMAGE=(hd0,gpt2)/vmlinuz-4.18.0-425.3.1.el8.x86_64 root=/dev/mapper/RHELCSB-Root ro vconsole.keymap=us crashkernel=auto rd.lvm.lv=RHELCSB/Root rd.luks.uuid=luks-d8a28c4c-96aa-4319-be26-96896272151d rhgb quiet noapic rd.luks.key=d8a28c4c-96aa-4319-be26-96896272151d=/keyfile:UUID=c47d962e-4be8-41d6-8216-8cf7a0d3b911 ipv6.disable=1