我想删除内核在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是由脚本修改的,但手动更改是持久的,实际上是某些设置的规范位置。
pipe理grub.cfg的工具是grub.cfg ,当内核被安装或者删除时,这个工具被/sbin/new-kernel-pkg调用。 --copy-default参数在安装新内核时传递给--copy-default ,这会导致它从当前的默认内核复制内核参数。 因此,为未来安装的内核设置缺省的内核参数是通过编辑grub.cfg缺省内核的条目来grub.cfg 。
如果你没有自动化这个,你可以简单地手动编辑grub.cfg并更改所有当前的内核条目。 但是,您可以使用grub.cfg来修改grub.cfg ,以避免parsing或编写正则expression式。 例如,这将从指定的内核版本中rhgb和quiet参数。
# grubby --update-kernel=/boot/vmlinuz-2.6.32-220.13.1.el6.x86_64 --remove-args="rhgb quiet"
但是,似乎没有select列出当前configuration的内核的选项,所以您必须以另一种方式发现这些内核。 一种select是在/boot/查找vmlinuz文件:
#!/bin/sh for KERNEL in /boot/vmlinuz-*; do grubby --update-kernel="$KERNEL" --remove-args="rhgb quiet" done
我们为CentOSfind了一个解决scheme! yum使用肮脏本身! (strace,谢谢!)grubby有选项“–copy-default”,我觉得yum和它一起肮脏。 所以你应该做的只是在grub.conf中添加你需要的所有内核选项给当前的默认内核并重启。 重启后你可以安装新的内核!