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

8

Eu gostaria de remover os parâmetros rhgb e quiet do kernel que são usados por padrão quando o kernel é inicializado no CentOS 6, mas eu quero que isso se aplique a todos os kernels instalados atualmente, assim como quaisquer kernels instalados no futuro. Eu preciso fazer isso de um script, então editar manualmente os arquivos não é uma opção e qualquer alteração de arquivo deve ser feita da maneira mais limpa possível.

No Debian / Ubuntu eu mudaria GRUB_CMDLINE_LINUX_DEFAULT em /etc/default/grub e depois executaria update-grub . Não consigo encontrar essa configuração em /etc/sysconfig/grub ou /etc/sysconfig/kernel , no entanto, nem há um script update-grub .

    
por mgorven 07.07.2012 / 00:31

2 respostas

12

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

A ferramenta que gerencia grub.cfg é grubby , que é chamada por /sbin/new-kernel-pkg quando os kernels são instalados ou removidos. O parâmetro --copy-default é passado para grubby quando 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 para o kernel padrão em grub.cfg .

Se você não estava automatizando isso, você poderia simplesmente editar grub.cfg manualmente e alterar todas as entradas atuais do kernel. No entanto, você pode usar grubby para modificar grub.cfg para evitar analisá-lo ou gravar expressões regulares. Por exemplo, isso removerá os parâmetros rhgb e quiet da versão do kernel especificada.

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

Parece não haver uma opção para listar os kernels atualmente configurados, então você terá que descobrir isso de outra maneira. Uma opção é procurar por vmlinuz arquivos em /boot/ :

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

Encontramos uma solução para o CentOS! yum usa sujo em si! (strace, obrigado!) O grubby tem a opção "--copy-default" e acho que o yum corre sujo com ele. Então, apenas uma coisa que você deve fazer é adicionar no grub.conf todas as opções do kernel que você precisa para o kernel padrão atual e reinicializar. Após a reinicialização, você pode instalar o novo kernel!

    
por 17.01.2013 / 08:29