我想删除在 CentOS 6 中启动内核时默认使用的rhgb
和quiet
内核参数,但我希望这适用于所有当前安装的内核以及将来安装的任何内核。我需要通过脚本执行此操作,因此手动编辑文件不是一种选择,任何文件更改都应尽可能干净地完成。
在 Debian/Ubuntu 中,我会更改GRUB_CMDLINE_LINUX_DEFAULT
然后/etc/default/grub
运行。但是我在或update-grub
中找不到这样的设置,也没有脚本。/etc/sysconfig/grub
/etc/sysconfig/kernel
update-grub
答案1
在 Debian/Ubuntu 中,grub.cfg
完全由脚本生成,任何手动更改都将被覆盖。然而,在 RHEL/CentOS 中,grub.cfg
由脚本修改,但手动更改会保留,并且实际上是某些设置的规范位置。
管理的工具grub.cfg
是grubby
/sbin/new-kernel-pkg
,在安装或删除内核时由 调用。安装新内核时,--copy-default
将参数传递给grubby
,这会导致它从当前默认内核复制内核参数。因此,可以通过编辑 中的默认内核条目来设置将来安装的内核的默认内核参数grub.cfg
。
如果您没有自动执行此操作,您可以简单地手动编辑grub.cfg
并更改所有当前内核条目。但是,您可以使用grubby
修改grub.cfg
以避免解析它或编写正则表达式。例如,这将从指定的内核版本中删除rhgb
和参数。quiet
# 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
答案2
我们找到了 CentOS 的解决方案!yum 本身使用 grubby!(strace,谢谢!)grubby 有选项“--copy-default”,我认为 yum 用它运行 grubby。所以你唯一要做的就是在 grub.conf 中将你需要的所有内核选项添加到当前默认内核并重新启动。重新启动后,你可以安装新内核!