Como defino os parâmetros padrão do kernel no CentOS para todos os kernels existentes e futuros?

9

Gostaria de remover os parâmetros rhgbe do quietkernel que são usados ​​por padrão quando o kernel é inicializado no CentOS 6, mas quero que isso se aplique a todos os kernels atualmente instalados, bem como a todos os kernels instalados no futuro. Eu preciso fazer isso a partir de um script, para editar manualmente os arquivos não é uma opção e as alterações de arquivos devem ser feitas da maneira mais limpa possível.

Em Debian / Ubuntu eu mudaria GRUB_CMDLINE_LINUX_DEFAULTem /etc/default/grube depois executar update-grub. Não consigo encontrar essa configuração em /etc/sysconfig/grubou /etc/sysconfig/kernelno entanto, nem existe um update-grubscript.

mgorven
fonte

Respostas:

13

No Debian / Ubuntu, grub.cfgé totalmente gerado por scripts e quaisquer alterações manuais feitas a ele serão derrotadas. No RHEL / CentOS, no entanto, grub.cfgé modificado por scripts, mas as alterações manuais são persistentes e, na verdade, é o local canônico para determinadas configurações.

A ferramenta que gerencia grub.cfgé grubbychamada por /sbin/new-kernel-pkgquando os kernels são instalados ou removidos. O --copy-defaultparâmetro é passado para grubbyquando um novo kernel é instalado, o que faz com que ele copie os parâmetros do kernel do kernel padrão atual. A configuração dos parâmetros padrão do kernel para kernels instalados no futuro é feita editando a entrada do kernel padrão no grub.cfg.

Se você não estava automatizando isso, poderia simplesmente editar grub.cfgmanualmente e alterar todas as entradas atuais do kernel. No entanto, você pode usar grubbypara modificar grub.cfgpara evitar a análise ou gravação de expressões regulares. Por exemplo, isso removerá os parâmetros rhgbe quietda versão especificada do kernel.

# grubby --update-kernel=/boot/vmlinuz-2.6.32-220.13.1.el6.x86_64 --remove-args="rhgb quiet"

No entanto, não parece haver uma opção para listar os kernels atualmente configurados, portanto você terá que descobrir esses outros modos. Uma opção é apenas procurar vmlinuzarquivos em /boot/:

#!/bin/sh
for KERNEL in /boot/vmlinuz-*; do
    grubby --update-kernel="$KERNEL" --remove-args="rhgb quiet"
done
mgorven
fonte
5
Você pode aplicá-lo a todos os kernels atuais e futuros usando ALL. grubby --update-kernel=ALL --remove-args="rhgb quiet"
21133 benjarrell
No caso de alguém está tendo problemas decifrar isso, o que está dizendo é que todas as alterações feitas aos parâmetros do kernel em grub.confserá automaticamente adicionado a quaisquer atualizações do kernel
ub3rst4r
1

Encontramos uma solução para o CentOS! yum usa o próprio imundo! (strace, obrigado!) grubby tem a opção "--copy-default" e eu acho que o yum roda sujo com ela. Portanto, a única coisa que você deve fazer é adicionar no grub.conf todas as opções do kernel necessárias ao kernel padrão atual e reiniciar. Após a reinicialização, você pode instalar o novo kernel!

user146279
fonte