如何在 CentOS 中为所有现有和未来内核设置默认内核参数?

mgo*_*ven 9 linux redhat centos grub linux-kernel

我想删除在 CentOS 6 中启动内核时默认使用的rhgbquiet内核参数,但我希望这适用于所有当前安装的内核以及将来安装的任何内核。我需要从脚本中执行此操作,因此无法手动编辑文件,并且应尽可能干净地完成任何文件更改。

在是Debian / Ubuntu的我会改变GRUB_CMDLINE_LINUX_DEFAULT/etc/default/grub,然后运行update-grub。我在/etc/sysconfig/grubor 中找不到这样的设置/etc/sysconfig/kernel,也没有update-grub脚本。

mgo*_*ven 13

在 Debian/Ubuntu 中,grub.cfg完全由脚本生成,对其进行的任何手动更改都将被破坏。然而,在 RHEL/CentOS 中,grub.cfg由脚本修改但手动更改被持久化,并且实际上是某些设置的规范位置。

管理的工具grub.cfggrubby/sbin/new-kernel-pkg在安装或删除内核时调用。安装新内核时--copy-default会传递该参数grubby,这会导致它从当前默认内核复制内核参数。因此,为将来安装的内核设置默认内核参数是通过编辑grub.cfg.

如果您没有自动执行此操作,您可以简单地grub.cfg手动编辑并更改所有当前内核条目。但是,您可以使用grubby修改grub.cfg以避免解析它或编写正则表达式。例如,这将从指定的内核版本中删除rhgbquiet参数。

# grubby --update-kernel=/boot/vmlinuz-2.6.32-220.13.1.el6.x86_64 --remove-args="rhgb quiet"
Run Code Online (Sandbox Code Playgroud)

但是,似乎没有列出当前配置的内核的选项,因此您必须以另一种方式发现这些。一种选择是只在 中查找vmlinuz文件/boot/

# grubby --update-kernel=/boot/vmlinuz-2.6.32-220.13.1.el6.x86_64 --remove-args="rhgb quiet"
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用“ALL”将其应用于所有当前和任何未来的内核。`grubby --update-kernel=ALL --remove-args="rhgb quiet"` (5认同)