Comment définir les paramètres de noyau par défaut dans CentOS pour tous les noyaux existants et futurs?

9

Je voudrais supprimer les paramètres rhgbet quietkernel qui sont utilisés par défaut lorsque le noyau est démarré dans CentOS 6, mais je veux que cela s'applique à tous les noyaux actuellement installés ainsi qu'à tous les noyaux installés à l'avenir. Je dois le faire à partir d'un script, donc la modification manuelle des fichiers n'est pas une option et toutes les modifications de fichiers doivent être effectuées aussi proprement que possible.

Dans Debian / Ubuntu je changerais GRUB_CMDLINE_LINUX_DEFAULTdans /etc/default/grubet puis exécutez update-grub. Je ne trouve pas un tel paramètre dans /etc/sysconfig/grubou /etc/sysconfig/kernelcependant, ni aucun update-grubscript.

mgorven
la source

Réponses:

13

Dans Debian / Ubuntu, grub.cfgest entièrement généré par des scripts et toutes les modifications manuelles qui y sont apportées seront clobber. Cependant, dans RHEL / CentOS, il grub.cfgest modifié par des scripts mais les modifications manuelles sont persistantes, et est en fait l'emplacement canonique pour certains paramètres.

L'outil qui gère grub.cfgest grubby, qui est appelé par /sbin/new-kernel-pkglorsque les noyaux sont installés ou supprimés. Le --copy-defaultparamètre est transmis à grubbylorsqu'un nouveau noyau est installé, ce qui le fait copier les paramètres du noyau à partir du noyau par défaut actuel. La définition des paramètres de noyau par défaut pour les noyaux installés ultérieurement se fait donc en modifiant l'entrée du noyau par défaut dans grub.cfg.

Si vous n'automatisiez pas cela, vous pouvez simplement éditer grub.cfgmanuellement et modifier toutes les entrées actuelles du noyau. Cependant, vous pouvez utiliser grubbypour modifier grub.cfgafin d'éviter de l'analyser ou d'écrire des expressions régulières. Par exemple, cela supprimera les paramètres rhgbet quietde la version de noyau spécifiée.

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

Cependant, il ne semble pas y avoir d'option pour répertorier les noyaux actuellement configurés, vous devrez donc les découvrir d'une autre manière. Une option consiste simplement à rechercher des vmlinuzfichiers dans /boot/:

#!/bin/sh
for KERNEL in /boot/vmlinuz-*; do
    grubby --update-kernel="$KERNEL" --remove-args="rhgb quiet"
done
mgorven
la source
5
Vous pouvez l'appliquer à tous les noyaux actuels et futurs en utilisant ALL. grubby --update-kernel=ALL --remove-args="rhgb quiet"
benjarrell
Dans le cas où quelqu'un d'autre a des problèmes pour déchiffrer cela, ce qu'il dit, c'est que toutes les modifications que vous apportez aux paramètres du noyau grub.confseront automatiquement ajoutées à toutes les mises à jour du noyau
ub3rst4r
1

Nous avons trouvé une solution pour CentOS! miam utilise crasseux lui-même! (strace, merci!) grubby a l'option "--copy-default" et je pense que yum tourne mal avec. Donc, la seule chose que vous devriez faire est d'ajouter dans grub.conf toutes les options de noyau dont vous avez besoin pour le noyau par défaut actuel et redémarrer. Après le redémarrage, vous pouvez installer un nouveau noyau!

user146279
la source