Làm cách nào để đặt tham số kernel mặc định trong CentOS cho tất cả các nhân hiện tại và tương lai?


9

Tôi muốn xóa các tham số kernel rhgbquietkernel được sử dụng theo mặc định khi kernel được khởi động trong CentOS 6, nhưng tôi muốn điều này áp dụng cho tất cả các kernel hiện được cài đặt cũng như bất kỳ kernel nào được cài đặt trong tương lai. Tôi cần phải làm điều này từ một tập lệnh, vì vậy chỉnh sửa tập tin theo cách thủ công không phải là một tùy chọn và mọi thay đổi tập tin nên được thực hiện càng sạch càng tốt.

Trong Debian / Ubuntu tôi sẽ thay đổi GRUB_CMDLINE_LINUX_DEFAULTtrong /etc/default/grubvà sau đó chạy update-grub. Tôi không thể tìm thấy một thiết lập như vậy trong /etc/sysconfig/grubhoặc /etc/sysconfig/kerneltuy nhiên, cũng không có một update-grubkịch bản.

Câu trả lời:


13

Trong Debian / Ubuntu, grub.cfgđược tạo hoàn toàn bởi các tập lệnh và mọi thay đổi thủ công được thực hiện đối với nó sẽ bị ghi đè. Tuy nhiên, trong RHEL / CentOS, grub.cfgđược sửa đổi bởi các tập lệnh nhưng các thay đổi thủ công vẫn tồn tại và thực sự là vị trí chính tắc cho các cài đặt nhất định.

Công cụ quản lý grub.cfggrubby, được gọi bởi /sbin/new-kernel-pkgkhi nhân được cài đặt hoặc gỡ bỏ. Các --copy-defaulttham số được truyền đến grubbykhi một hạt nhân mới được cài đặt, gây ra nó để sao chép các thông số kernel từ kernel mặc định hiện tại. Do đó, việc thiết lập các tham số kernel mặc định cho các kernel được cài đặt trong tương lai được thực hiện bằng cách chỉnh sửa mục nhập cho kernel mặc định trong grub.cfg.

Nếu bạn không tự động hóa việc này, bạn chỉ cần chỉnh sửa grub.cfgthủ công và thay đổi tất cả các mục nhân hiện tại. Tuy nhiên, bạn có thể sử dụng grubbyđể sửa đổi grub.cfgđể tránh phân tích cú pháp hoặc viết các biểu thức thông thường. Ví dụ, điều này sẽ loại bỏ các tham số rhgbquiettừ phiên bản kernel đã chỉ định.

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

Tuy nhiên, dường như không có tùy chọn nào để liệt kê các hạt nhân được cấu hình hiện tại, vì vậy bạn sẽ phải khám phá những cách khác. Một tùy chọn là chỉ tìm vmlinuzcác tệp trong /boot/:

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

5
Bạn có thể áp dụng nó cho tất cả các nhân hiện tại và bất kỳ hạt nhân nào trong tương lai bằng cách sử dụng ALL. grubby --update-kernel=ALL --remove-args="rhgb quiet"
benjarrell

Trong trường hợp người khác gặp khó khăn khi giải mã điều này, điều sẽ nói là mọi thay đổi bạn thực hiện đối với tham số kernel grub.confsẽ tự động được thêm vào bất kỳ cập nhật kernel nào
ub3rst4r

1

Chúng tôi đã tìm thấy một giải pháp cho CentOS! yum sử dụng chính nó (strace, cảm ơn bạn!) grubby có tùy chọn "--copy-default" và tôi nghĩ rằng yum chạy grubby với nó. Vì vậy, điều duy nhất bạn nên làm là thêm vào grub.conf tất cả các tùy chọn kernel bạn cần để kernel mặc định hiện tại và khởi động lại. Sau khi khởi động lại, bạn có thể cài đặt kernel mới!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.