Come posso impostare i parametri predefiniti del kernel in CentOS per tutti i kernel esistenti e futuri?


9

Vorrei rimuovere i parametri del kernel rhgbe quietche sono usati di default quando il kernel viene avviato in CentOS 6, ma voglio che questo si applichi a tutti i kernel attualmente installati e a tutti i kernel installati in futuro. Devo farlo da uno script, quindi la modifica manuale dei file non è un'opzione e tutte le modifiche ai file devono essere eseguite nel modo più pulito possibile.

In Debian / Ubuntu vorrei cambiare GRUB_CMDLINE_LINUX_DEFAULTin /etc/default/grube quindi eseguire update-grub. Non riesco a trovare un'impostazione simile in /etc/sysconfig/grubo /etc/sysconfig/kernelcomunque, né c'è uno update-grubscript.

Risposte:


13

In Debian / Ubuntu, grub.cfgè completamente generato da script e qualsiasi modifica manuale apportata ad esso verrà bloccata. In RHEL / CentOS, tuttavia, grub.cfgviene modificato da script ma le modifiche manuali sono persistenti ed è in realtà la posizione canonica per determinate impostazioni.

Lo strumento che gestisce grub.cfgè grubby, che viene chiamato /sbin/new-kernel-pkgquando i kernel vengono installati o rimossi. Il --copy-defaultparametro viene passato grubbyquando viene installato un nuovo kernel, il che gli fa copiare i parametri del kernel dal kernel predefinito corrente. L'impostazione dei parametri predefiniti del kernel per i kernel installati in futuro viene quindi effettuata modificando la voce per il kernel predefinito in grub.cfg.

Se non stavi automatizzando questo, potresti semplicemente modificare grub.cfgmanualmente e cambiare tutte le voci del kernel correnti. Tuttavia, è possibile utilizzare grubbyper modificare grub.cfgper evitare di analizzarlo o scrivere espressioni regolari. Ad esempio, questo rimuoverà i parametri rhgbe quietdalla versione del kernel specificata.

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

Tuttavia, non sembra esserci un'opzione per elencare i kernel attualmente configurati, quindi dovrai scoprirli in un altro modo. Un'opzione è solo cercare i vmlinuzfile in /boot/:

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

5
Puoi farlo applicare a tutti i kernel attuali e futuri usando ALL. grubby --update-kernel=ALL --remove-args="rhgb quiet"
Benjarrell,

Nel caso in cui qualcun altro abbia problemi a decifrarlo, ciò che sta dicendo è che qualsiasi modifica apportata ai parametri del kernel grub.confverrà automaticamente aggiunta a qualsiasi aggiornamento del kernel
ub3rst4r

1

Abbiamo trovato una soluzione per CentOS! yum usa lo sporco stesso! (strace, grazie!) Grubby ha l'opzione "--copy-default" e penso che Yum funzioni sporco. Quindi l'unica cosa che dovresti fare è aggiungere in grub.conf tutte le opzioni del kernel necessarie al kernel predefinito corrente e riavviare. Dopo il riavvio è possibile installare il nuovo kernel!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.