CentOSで既存および将来のすべてのカーネルのデフォルトのカーネルパラメータを設定するにはどうすればよいですか?


9

CentOS 6でカーネルを起動するときにデフォルトで使用されるrhgbquietカーネルパラメータを削除したいのですが、これを現在インストールされているすべてのカーネルだけでなく、将来インストールされるカーネルにも適用したいと考えています。スクリプトからこれを行う必要があるので、手動でファイルを編集することはできません。ファイルの変更はできるだけきれいに行う必要があります。

Debian / Ubuntuでは、に切り替えGRUB_CMDLINE_LINUX_DEFAULT/etc/default/grub実行しupdate-grubます。私はこのような設定で見つけることができない/etc/sysconfig/grubか、/etc/sysconfig/kernelしかしを、またそこにあるupdate-grubスクリプトが。

回答:


13

Debian / Ubuntuでは、grub.cfgスクリプトによって完全に生成され、手動で加えられた変更はすべて破棄されます。ただし、RHEL / CentOSでは、grub.cfgスクリプトによって変更されますが、手動による変更は保持され、実際には特定の設定の正規の場所です。

管理するツールgrub.cfggrubbyであり/sbin/new-kernel-pkg、カーネルがインストールまたは削除されたときに呼び出されます。--copy-defaultパラメータが渡されgrubby、それが現在のデフォルトのカーネルからのカーネル・パラメータをコピーする原因となる、新しいカーネルがインストールされている場合。したがって、将来インストールされるカーネルのデフォルトのカーネルパラメータを設定するには、でデフォルトのカーネルのエントリを編集しますgrub.cfg

これを自動化していない場合は、grub.cfg手動で編集して、現在のカーネルエントリをすべて変更できます。ただし、を使用grubbygrub.cfgて、構文解析や正規表現の作成を回避するために変更できます。たとえば、これにより、指定したカーネルバージョンからrhgbおよびquietパラメータが削除されます。

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

ただし、現在構成されているカーネルを一覧表示するオプションはないようです。そのため、これらを別の方法で発見する必要があります。1つのオプションは、次の場所でvmlinuzファイルを探すことです/boot/

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

5
を使用して、現在および将来のすべてのカーネルに適用することができますALLgrubby --update-kernel=ALL --remove-args="rhgb quiet"
ベンジャレル2013

他の誰かがこれを解読するのに問題を抱えている場合、それが言っていることは、カーネルパラメータにgrub.conf加えた変更はすべてカーネルアップデートに自動的に追加されるということです
ub3rst4r

1

CentOSのソリューションを見つけました!yumはgrubby自体を使用します!(strace、ありがとう!)grubbyには「--copy-default」というオプションがあり、yumはそれでgrubbyを実行すると思います。したがって、あなたがすべきことは、現在のデフォルトのカーネルに必要なすべてのカーネルオプションをgrub.confに追加して再起動することだけです。再起動後、新しいカーネルをインストールできます!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.