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


9

我想删除在CentOS 6中启动内核时默认使用的rhgbquiet内核参数,但是我希望它适用于所有当前安装的内核以及将来安装的所有内核。我需要通过脚本执行此操作,因此手动编辑文件不是一种选择,任何文件更改都应尽可能干净。

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

Answers:


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"

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

#!/bin/sh
for KERNEL in /boot/vmlinuz-*; do
    grubby --update-kernel="$KERNEL" --remove-args="rhgb quiet"
done

5
您可以使用将其应用于所有当前和将来的所有内核ALLgrubby --update-kernel=ALL --remove-args="rhgb quiet"
benjarrell

万一其他人grub.conf
难以理解

1

我们找到了CentOS的解决方案!百胜本身使用肮脏!(strace,谢谢!)grubby的选项为“ --copy-default”,我认为yum用它运行grubby。因此,您唯一需要做的就是在grub.conf中添加当前默认内核并重新引导所需的所有内核选项。重新启动后,您可以安装新内核!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.