Jak ustawić domyślne parametry jądra w CentOS dla wszystkich istniejących i przyszłych jąder?

9

Chciałbym usunąć parametry rhgbi quietjądra, które są używane domyślnie podczas uruchamiania jądra w CentOS 6, ale chcę, aby dotyczyło to wszystkich obecnie zainstalowanych jąder, a także wszystkich jąder zainstalowanych w przyszłości. Muszę to zrobić ze skryptu, więc ręczna edycja plików nie jest opcją, a wszelkie zmiany plików powinny być dokonywane tak czysto, jak to możliwe.

W Debianie / Ubuntu Chciałbym zmienić GRUB_CMDLINE_LINUX_DEFAULTw /etc/default/grub, a następnie uruchomić update-grub. Nie mogę znaleźć takie ustawienie się w /etc/sysconfig/grubczy /etc/sysconfig/kerneljednak nie jest tam update-grubskrypt.

mgorven
źródło

Odpowiedzi:

13

W Debian / Ubuntu grub.cfgjest w pełni generowany przez skrypty, a wszelkie dokonywane w nim ręczne zmiany zostaną zablokowane. Jednak w RHEL / CentOS grub.cfgjest modyfikowany przez skrypty, ale ręczne zmiany są utrwalane i jest w rzeczywistości kanoniczną lokalizacją dla niektórych ustawień.

Narzędzie, które zarządza grub.cfgsię grubby, co jest nazywane przez /sbin/new-kernel-pkgkiedy jądra są instalowane lub usuwane. --copy-defaultParametr jest przekazywany do grubbykiedy nowy kernel jest zainstalowany, który powoduje skopiowanie parametrów jądra z bieżącego domyślnego jądra. Dlatego ustawienie domyślnych parametrów jądra dla przyszłych jąder odbywa się poprzez edycję wpisu dla domyślnego jądra w grub.cfg.

Jeśli nie automatyzujesz tego, możesz po prostu grub.cfgręcznie edytować i zmienić wszystkie bieżące wpisy jądra. Możesz jednak użyć grubbydo modyfikacji grub.cfg, aby uniknąć parsowania lub pisania wyrażeń regularnych. Na przykład spowoduje to usunięcie parametrów rhgbi quietz określonej wersji jądra.

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

Wydaje się jednak, że nie ma opcji wyświetlania obecnie skonfigurowanych jąder, więc musisz odkryć je w inny sposób. Jedną z opcji jest po prostu szukanie vmlinuzplików w /boot/:

#!/bin/sh
for KERNEL in /boot/vmlinuz-*; do
    grubby --update-kernel="$KERNEL" --remove-args="rhgb quiet"
done
mgorven
źródło
5
Możesz go zastosować do wszystkich obecnych i przyszłych jąder, używając ALL. grubby --update-kernel=ALL --remove-args="rhgb quiet"
benjarrell
W przypadku, gdy ktoś ma problemy z rozszyfrowaniem tego, oznacza to, że wszelkie zmiany dokonane w parametrach jądra grub.confzostaną automatycznie dodane do wszelkich aktualizacji jądra
ub3rst4r
1

Znaleźliśmy rozwiązanie dla CentOS! mniam używa samego brudu! (strace, dziękuję!) grubby ma opcję „--copy-default” i myślę, że yum uruchamia z nią grubby. Więc jedyne, co powinieneś zrobić, to dodać w grub.conf wszystkie opcje jądra, które potrzebujesz do domyślnego jądra i zrestartowania systemu. Po ponownym uruchomieniu możesz zainstalować nowe jądro!

użytkownik146279
źródło