기존 및 향후의 모든 커널에 대해 CentOS의 기본 커널 매개 변수를 어떻게 설정합니까? 설치된 커널에 적용하고 싶습니다. 스크립트에서이

CentOS 6에서 커널을 부팅 할 때 기본적으로 사용되는 rhgbquiet커널 매개 변수 를 제거하고 싶지만 현재 설치된 모든 커널과 향후 설치된 커널에 적용하고 싶습니다. 스크립트에서이 작업을 수행해야하므로 수동으로 파일을 편집하는 것은 옵션이 아니며 파일을 최대한 깨끗하게 변경해야합니다.

데비안에서 / 우분투 내가 바꿀 것 GRUB_CMDLINE_LINUX_DEFAULT으로 /etc/default/grub실행 다음과 update-grub. 나는에서 이러한 설정을 찾을 수 없습니다 /etc/sysconfig/grub또는 /etc/sysconfig/kernel그러나 아니고이 update-grub스크립트는.



답변

데비안 / 우분투에서는 grub.cfg스크립트에 의해 완전히 생성되며 수동으로 변경 한 내용은 지워집니다. 그러나 RHEL / CentOS에서는 grub.cfg스크립트에 의해 수정되지만 수동 변경은 유지되며 실제로 특정 설정의 표준 위치입니다.

관리하는 도구 grub.cfg는 커널을 설치하거나 제거 할 때 grubby호출 /sbin/new-kernel-pkg됩니다. 이 --copy-default매개 변수는 grubby새 커널이 설치 될 때 전달되어 현재 기본 커널에서 커널 매개 변수를 복사합니다. 향후 설치된 커널에 대한 기본 커널 매개 변수 설정은에서 기본 커널에 대한 항목을 편집하여 수행됩니다 grub.cfg.

이것을 자동화하지 않았다면 간단히 grub.cfg수동으로 편집 하고 모든 현재 커널 항목을 변경할 수 있습니다. 그러나 구문 분석하거나 정규 표현식을 작성하지 않도록 grubby수정 하는 데 사용할 수 있습니다 grub.cfg. 예를 들어, 지정된 커널 버전에서 rhgbquiet매개 변수 가 제거됩니다 .

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

그러나 현재 구성된 커널을 나열하는 옵션이없는 것 같으므로 다른 방법을 찾아야합니다. 한 가지 옵션은 다음에서 vmlinuz파일을 찾는 것입니다 /boot/.

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

답변

CentOS를위한 솔루션을 찾았습니다! m은 그루비 자체를 사용합니다! grubby는 “–copy-default”옵션을 가지고 있으며 yum이 더럽게 동작한다고 생각합니다. 따라서 grub.conf에 현재 기본 커널에 필요한 모든 커널 옵션을 추가하고 재부팅하는 것만하면됩니다. 재부팅 후 새로운 커널을 설치할 수 있습니다!