Wie lege ich die Standard-Kernel-Parameter in CentOS für alle vorhandenen und zukünftigen Kernel fest?

9

Ich möchte die rhgbund quietKernel-Parameter entfernen, die standardmäßig verwendet werden, wenn der Kernel in CentOS 6 gestartet wird, aber ich möchte, dass dies für alle derzeit installierten Kernel sowie für alle in Zukunft installierten Kernel gilt. Ich muss dies über ein Skript tun, daher ist das manuelle Bearbeiten von Dateien keine Option, und alle Dateiänderungen sollten so sauber wie möglich durchgeführt werden.

In Debian / Ubuntu würde ich ändern GRUB_CMDLINE_LINUX_DEFAULTin /etc/default/grubund dann laufen update-grub. Ich kann eine solche Einstellung nicht finden /etc/sysconfig/gruboder /etc/sysconfig/kerneles gibt auch kein update-grubSkript.

mgorven
quelle

Antworten:

13

In Debian / Ubuntu wird grub.cfges vollständig durch Skripte generiert und alle daran vorgenommenen manuellen Änderungen werden blockiert. In RHEL / CentOS wird dies jedoch grub.cfgdurch Skripte geändert, manuelle Änderungen bleiben jedoch bestehen und sind tatsächlich der kanonische Speicherort für bestimmte Einstellungen.

Das Werkzeug , das verwaltet grub.cfgwird grubby, das heißt durch , /sbin/new-kernel-pkgwenn Kernel installiert oder entfernt wird . Der --copy-defaultParameter wird an übergeben, grubbywenn ein neuer Kernel installiert wird, wodurch die Kernelparameter aus dem aktuellen Standardkernel kopiert werden. Das Festlegen der Standard-Kernel-Parameter für zukünftig installierte Kernel erfolgt daher durch Bearbeiten des Eintrags für den Standard-Kernel in grub.cfg.

Wenn Sie dies nicht automatisiert haben, können Sie es einfach grub.cfgmanuell bearbeiten und alle aktuellen Kerneleinträge ändern. Sie können grubbyjedoch Änderungen vornehmen, grub.cfgum zu vermeiden, dass diese analysiert oder reguläre Ausdrücke geschrieben werden. Dadurch werden beispielsweise die Parameter rhgbund quietaus der angegebenen Kernelversion entfernt.

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

Es scheint jedoch keine Option zu geben, die aktuell konfigurierten Kernel aufzulisten, sodass Sie diese auf andere Weise entdecken müssen. Eine Möglichkeit besteht darin, nur nach vmlinuzDateien zu suchen in /boot/:

#!/bin/sh
for KERNEL in /boot/vmlinuz-*; do
    grubby --update-kernel="$KERNEL" --remove-args="rhgb quiet"
done
mgorven
quelle
5
Sie können es mit allen auf alle aktuellen und zukünftigen Kernel anwenden lassen ALL. grubby --update-kernel=ALL --remove-args="rhgb quiet"
Benjamin
Falls jemand anderes Probleme hat, dies zu entschlüsseln, heißt es, dass alle Änderungen, die Sie an den Kernel-Parametern in vornehmen, grub.confautomatisch zu allen Kernel-Updates hinzugefügt werden
ub3rst4r
1

Wir haben eine Lösung für CentOS gefunden! yum benutzt schmuddelig selbst! (strace, danke!) schmuddelig hat die Option "--copy-default" und ich denke yum läuft damit schmuddelig. Sie sollten also in grub.conf nur alle Kerneloptionen hinzufügen, die Sie zum aktuellen Standardkernel benötigen, und einen Neustart durchführen. Nach dem Neustart können Sie einen neuen Kernel installieren!

user146279
quelle