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
é grubby
chamada por /sbin/new-kernel-pkg
quando os kernels são instalados ou removidos. O --copy-default
parâmetro é 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 do kernel padrão no grub.cfg
.
Se você não estava automatizando isso, 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 a análise ou gravação de expressões regulares. Por exemplo, isso removerá os parâmetros rhgb
e quiet
da 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 vmlinuz
arquivos em /boot/
:
#!/bin/sh
for KERNEL in /boot/vmlinuz-*; do
grubby --update-kernel="$KERNEL" --remove-args="rhgb quiet"
done
ALL
.grubby --update-kernel=ALL --remove-args="rhgb quiet"
grub.conf
será automaticamente adicionado a quaisquer atualizações do kernelEncontramos 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!
fonte