Bagaimana cara mengatur parameter kernel default di CentOS untuk semua kernel yang ada dan yang akan datang?

9

Saya ingin menghapus parameter rhgbdan quietkernel yang digunakan secara default ketika kernel di-boot di CentOS 6, tapi saya ingin ini berlaku untuk semua kernel yang saat ini diinstal serta kernel yang diinstal di masa depan. Saya perlu melakukan ini dari skrip, jadi mengedit file secara manual bukanlah suatu opsi dan setiap perubahan file harus dilakukan sebersih mungkin.

Dalam Debian / Ubuntu saya akan mengubah GRUB_CMDLINE_LINUX_DEFAULTdalam /etc/default/grubdan kemudian jalankan update-grub. Saya tidak dapat menemukan pengaturan seperti itu di /etc/sysconfig/grubatau /etc/sysconfig/kernelbagaimanapun, juga tidak ada update-grubskrip.

Mgorven
sumber

Jawaban:

13

Di Debian / Ubuntu, grub.cfgsepenuhnya dihasilkan oleh skrip dan setiap perubahan manual yang dilakukan untuk itu akan musnah. Namun dalam RHEL / CentOS, grub.cfgdimodifikasi oleh skrip tetapi perubahan manual tetap ada, dan sebenarnya merupakan lokasi kanonik untuk pengaturan tertentu.

Alat yang mengelola grub.cfgadalah grubby, yang dipanggil oleh /sbin/new-kernel-pkgsaat kernel dipasang atau dihapus. The --copy-defaultparameter dilewatkan ke grubbyketika kernel baru diinstal, yang menyebabkan untuk menyalin parameter kernel dari kernel default saat ini. Oleh karena itu, pengaturan parameter kernel default untuk kernel yang diinstal di masa mendatang dilakukan dengan mengedit entri untuk kernel default di grub.cfg.

Jika Anda tidak mengotomatisasi ini, Anda cukup mengedit grub.cfgsecara manual dan mengubah semua entri kernel saat ini. Namun, Anda dapat menggunakannya grubbyuntuk memodifikasi grub.cfgagar tidak menguraikannya atau menulis ekspresi reguler. Sebagai contoh, ini akan menghapus rhgbdan quietparameter dari versi kernel yang ditentukan.

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

Namun sepertinya tidak ada opsi untuk mendaftar kernel yang sudah dikonfigurasi, jadi Anda harus menemukan cara lain ini. Salah satu opsi adalah hanya mencari vmlinuzfile di /boot/:

#!/bin/sh
for KERNEL in /boot/vmlinuz-*; do
    grubby --update-kernel="$KERNEL" --remove-args="rhgb quiet"
done
Mgorven
sumber
5
Anda dapat menerapkannya ke semua kernel saat ini dan di masa depan dengan menggunakan ALL. grubby --update-kernel=ALL --remove-args="rhgb quiet"
benjarrell
Jika ada orang lain yang mengalami kesulitan menguraikan ini, apa yang dikatakannya adalah bahwa setiap perubahan yang Anda lakukan pada parameter kernel grub.confsecara otomatis akan ditambahkan ke setiap pembaruan kernel
ub3rst4r
1

Kami menemukan solusi untuk CentOS! yum menggunakan kotor itu sendiri! (strace, terima kasih!) kotor memiliki opsi "--copy-default" dan saya pikir yum berjalan kotor dengannya. Jadi satu-satunya hal yang harus Anda lakukan adalah menambahkan grub.conf semua opsi kernel yang Anda perlukan untuk kernel default saat ini dan reboot. Setelah reboot Anda dapat menginstal kernel baru!

pengguna146279
sumber