总结

可以使用 2 种方法修改 GRUB2 参数:
1.使用grubby工具。

2.修改/etc/default/grub文件,使用命令 grub2-mkconfig。

还要确保不要直接编辑文件 /boot/grub.cfg。
该文件使用 grubby 工具根据更改自动更新。

CentOS/RHEL 7:如何使用 grubby 修改 GRUB2 参数

从 RHEL 7 开始,GRUB2 是默认的引导加载程序。
GRUB2 的配置和设置与 RHEL 6 及之前版本中使用的 GRUB 有很大不同。
grubby 命令行实用程序可用于对 /boot/grub.cfg 文件进行持久更改。
我们还可以修改 /etc/default/grub 文件并使用 grub2-mkconfig 来修改参数。

注意:不建议通过 vi 手动修改 /boot/grub.cfg

如何使用 grubby 修改 GRUB2 参数

  1. 使用 grubby 命令列出所有存在的内核条目。
# grubby --info=ALL
index=0
kernel=/boot/vmlinuz-3.10.0-229.el7.x86_64
args="ro nomodeset crashkernel=auto rd.lvm.lv=vg_os/lv_root rd.lvm.lv=vg_os/lv_swap rhgb quiet LANG=en_US.UTF-8"
root=/dev/mapper/vg_os-lv_root
initrd=/boot/initramfs-3.10.0-229.el7.x86_64.img
title=Red Hat Enterprise Linux Server 7.1 (Maipo), with Linux 3.10.0-229.el7.x86_64
index=1
kernel=/boot/vmlinuz-0-rescue-0c4400a0fc934267945bc23cb6c4440d
args="ro nomodeset crashkernel=auto rd.lvm.lv=vg_os/lv_root rd.lvm.lv=vg_os/lv_swap rhgb quiet"
root=/dev/mapper/vg_os-lv_root
initrd=/boot/initramfs-0-rescue-0c4400a0fc934267945bc23cb6c4440d.img
title=Red Hat Enterprise Linux Server 7.1 (Maipo), with Linux 0-rescue-0c4400a0fc934267945bc23cb6c4440d
index=2
non linux entry

-update-kernel 选项可用于在与以下选项结合使用时更新菜单项:

  1. -args : 添加新参数。

  2. -remove-args :删除现有参数。

如何删除参数

让我们看一个从菜单项中删除参数的示例。
以下示例显示了如何删除“rhgb quiet”参数。

# grubby --remove-args "rhgb quiet" --update-kernel /boot/vmlinuz-3.10.0-229.el7.x86_64

列出所有内核条目并验证所做的更改。
我们会注意到内核 /boot/vmlinuz-3.10.0-229.el7.x86_64 的“rhgb 相当”参数已被删除。

# grubby --info=ALL
index=0
kernel=/boot/vmlinuz-3.10.0-229.el7.x86_64
args="ro nomodeset crashkernel=auto rd.lvm.lv=vg_os/lv_root rd.lvm.lv=vg_os/lv_swap LANG=en_US.UTF-8"
root=/dev/mapper/vg_os-lv_root
initrd=/boot/initramfs-3.10.0-229.el7.x86_64.img
title=Red Hat Enterprise Linux Server 7.1 (Maipo), with Linux 3.10.0-229.el7.x86_64
index=1
kernel=/boot/vmlinuz-0-rescue-0c4400a0fc934267945bc23cb6c4440d
args="ro nomodeset crashkernel=auto rd.lvm.lv=vg_os/lv_root rd.lvm.lv=vg_os/lv_swap rhgb quiet"
root=/dev/mapper/vg_os-lv_root
initrd=/boot/initramfs-0-rescue-0c4400a0fc934267945bc23cb6c4440d.img
title=Red Hat Enterprise Linux Server 7.1 (Maipo), with Linux 0-rescue-0c4400a0fc934267945bc23cb6c4440d
index=2
non linux entry
更多: zhilu jiaocheng

如何添加参数

让我们看一个向菜单项添加参数的示例。
让我们再次添加删除的参数“rhgb quiet”。
使用“-args”选项向 GRUB2 添加参数。

# grubby --args "rhgb quiet" --update-kernel /boot/vmlinuz-3.10.0-229.el7.x86_64

列出所有内核条目并验证所做的更改。

# grubby --info=ALL
index=0
kernel=/boot/vmlinuz-3.10.0-229.el7.x86_64
args="ro nomodeset crashkernel=auto rd.lvm.lv=vg_os/lv_root rd.lvm.lv=vg_os/lv_swap LANG=en_US.UTF-8 rhgb quiet"
root=/dev/mapper/vg_os-lv_root
initrd=/boot/initramfs-3.10.0-229.el7.x86_64.img
title=Red Hat Enterprise Linux Server 7.1 (Maipo), with Linux 3.10.0-229.el7.x86_64
index=1
kernel=/boot/vmlinuz-0-rescue-0c4400a0fc934267945bc23cb6c4440d
args="ro nomodeset crashkernel=auto rd.lvm.lv=vg_os/lv_root rd.lvm.lv=vg_os/lv_swap rhgb quiet"
root=/dev/mapper/vg_os-lv_root
initrd=/boot/initramfs-0-rescue-0c4400a0fc934267945bc23cb6c4440d.img
title=Red Hat Enterprise Linux Server 7.1 (Maipo), with Linux 0-rescue-0c4400a0fc934267945bc23cb6c4440d
index=2
non linux entry

修改 /etc/default/grub 中定义的参数

我们可能需要修改的另一个常见条目是 grub 菜单的超时时间,它定义在 /etc/default/grub.conf 中。
我们可以使用下面描述的方法来修改文件 /etc/default/grub 中定义的任何其他参数。

# cat /etc/default/grub
GRUB_TIMEOUT=5                       #### we have modified this from 5 seconds to 15 seconds
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="nomodeset crashkernel=auto rd.lvm.lv=vg_os/lv_root rd.lvm.lv=vg_os/lv_swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

我们可以编辑 /etc/default/grub 并修改为“GRUB_TIMEOUT=15”,然后使用 grub2-mkconfig 命令重建 grub.cfg。

# grub2-mkconfig -o /boot/grub2/grub.cfg
日期:2020-09-17 00:12:04 来源:oir作者:oir