我想删除在CentOS 6中引导内核时默认使用的rhgb和quiet内核参数,但我希望这适用于所有当前安装的内核以及将来安装的所有内核.我需要从脚本执行此操作,因此手动编辑文件不是一个选项,任何文件更改都应尽可能干净地完成.
在Debian / Ubuntu中,我将在/ etc / default / grub中更改GRUB_CMDLINE_LINUX_DEFAULT,然后运行update-grub.我在/ etc / sysconfig / grub或/ etc / sysconfig / kernel中找不到这样的设置,但是也没有update-grub脚本.
解决方法
在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"
似乎没有列出当前配置的内核的选项,因此您必须以另一种方式发现这些内容.一种选择是在/ boot /中查找vmlinuz文件:
#!/bin/sh for KERNEL in /boot/vmlinuz-*; do grubby --update-kernel="$KERNEL" --remove-args="rhgb quiet" done