5.2. 外部カーネルパラメーターの重要な変更

本章では、システム管理者向けに、Red Hat Enterprise Linux 8.3 に同梱されるカーネルの重要な変更点の概要を説明します。変更には、たとえば、proc エントリー、sysctl および sysfs のデフォルト値、ブートパラメーター、カーネル設定オプション、または重要な動作の変更などが含まれます。

新しいカーネルパラメーター
acpi_no_watchdog = [HW,ACPI,WDT]
このパラメーターを使用すると、ACPI (Advanced Configuration and Power Interface) ベースの Watchdog インターフェース (WDAT) を無視し、ネイティブドライバーがウォッチドッグデバイスを制御できるようにします。
dfltcc = [HW,S390]

このパラメーターは、IBM Z アーキテクチャーの zlib ハードウェアサポートを設定します。

形式: { on | off | def_only | inf_only | always }

オプションは次のとおりです。

  • on (デフォルト): レベル 1 および展開における圧縮に対する IBM Z zlib ハードウェアサポート
  • off - IBM Z zlib ハードウェアのサポートはありません。
  • def_only - deflate アルゴリズムのみに対する IBM Z zlib ハードウェアサポート(レベル 1 で圧縮)
  • INF_only - フラットなアルゴリズムのみの IBM Z zlib ハードウェアサポート
  • Always: on に類似しますが、選択した圧縮レベルを無視し、常に(デバッグに使用)ハードウェアサポートを使用します。
irqchip.gicv3_pseudo_nmi = [ARM64]

このパラメーターにより、カーネルにおける擬似マスク不可割り込み (NMI) のサポートが有効になります。

このパラメーターを使用するには、CONFIG_ARM64_PSEUDO_NMI 設定項目でカーネルを構築する必要があります。

panic_on_taint =

Bitmask for conditionally calling panic() in add_taint()

形式: <hex> [,nousertaint]

このセットの フラグadd_taint() システムコールが呼び出されると、カーネルがパニックを引き起こす TAINT フラグのセットを表す 16 進数のビットマスク。オプションの nousertaint スイッチは、panic_on_taint のビットマスクに一致するフラグセットに書き込むことで ユーザー空間で強制されるクラッシュを防ぎます。

詳細は、アップストリームのドキュメント を参照してください。

prot_virt = [S390]

形式: <bool>

このパラメーターにより、ハードウェアサポートがある場合は、ハイパーバイザーから分離された保護された仮想マシンをホストできるようにします。

rcutree.use_softirq = [KNL]

このパラメーターにより、Tree-RCU softirq 処理の除外が有効になります。

このパラメーターをゼロに設定すると、すべての RCU_SOFTIRQ 処理 を CPU ごとの rcuc kthreads に移動します。rcutree.use_softirq をゼロ以外の値(デフォルト)に設定すると、RCU_SOFTIRQ がデフォルトで使用され ます。rcutree.use_softirq=0 を指定して rcuc kthreads を使用します。

split_lock_detect = [X86]

このパラメーターにより、分割ロックの検出が有効になります。有効にすると、ハードウェアサポートがある場合は、キャッシュライン境界でデータにアクセスするアトミック命令により、調整チェック例外が発生します。

オプションは次のとおりです。

  • off - 無効
  • warn: カーネルは、アライメントチェック例外(#AC)をトリガーするアプリケーションについてのレート制限の警告を生成します。このモードは、スプリットロック検出に対応する CPU のデフォルトです。
  • fatal - カーネルは、#AC 例外をトリガーするアプリケーションに Buss エラー(SIGBUS)シグナルを送信します。

    ユーザーモードで実行していない間に #AC 例外が発生すると、カーネルは warn または fatal モードで oops エラーが発生します。

srbds = [X86,INTEL]

このパラメーターは、特殊レジスターバッファーデータサンプリング (SRBDS) の軽減策を制御します。

特定の CPU は、MDS (Microarchitectural Data Sampling) と同様の不正使用に対して脆弱です。これは、乱数ジェネレーターからビットが漏えいする可能性があります。

デフォルトでは、マイクロコードによりこの問題は軽減されます。ただし、マイクロコードの修正により、RDRAND および RDSEED 命令が大幅に遅くなる可能性があります。たとえば、これにより urandom カーネル乱数ソースデバイスからのスループットが低下します。

マイクロコードの軽減策を無効にするには、以下のオプションを設定します。

  • off - 軽減策を無効にし、RDRAND および RDSEEDのパフォーマンスへの影響を排除します。
svm = [PPC]

形式: { on | off | y | n | 1 | 0 }

このパラメーターは、pSeries システムで、保護された実行障害 (Protected Execution Facility) の使用を制御します。

nopv = [X86,XEN,KVM,HYPER_V,VMWARE]

このパラメーターは、PV ドライバーのないジェネリックゲストとしてゲストを強制的に実行する PV の最適化を無効にします。

現在サポートされているのは、XEN HVM、KVM、HYPER_V、および VMWARE です。

更新されたカーネルパラメーター
hugepagesz = [HW]

このパラメーターは、Huge Page のサイズを指定します。このパラメーターを使用して hugepages パラメーターと併用し、指定したサイズの Huge Page 数を事前に割り当てます。

hugepagesz および hugepages パラメーターをペアで指定します。以下に例を示します。

hugepagesz=2M hugepages=512

hugepagesz パラメーターは、特定の Huge Page サイズのコマンドラインで 1 回のみ指定できます。有効な Huge Page サイズはアーキテクチャーによって異なります。

hugepages = [HW]

このパラメーターで、事前に割り当てるヒュージページの数を指定します。このパラメーターは通常、有効な hugepagesz または default_hugepagesz パラメーターに従います。

ただし、hugepages が最初または唯一の HugeTLB コマンドラインパラメーターである場合は、割り当てるデフォルトサイズの Huge Page の数を暗黙的に指定します。デフォルトサイズの Huge Page の数が暗黙的に指定される場合、デフォルトサイズの hugepagesz + hugepages パラメーターペアで上書きすることはできません。

たとえば、2M のデフォルトの Huge Page サイズを持つアーキテクチャーでは、以下のようになります。

hugepages=256 hugepagesz=2M hugepages=512

上記の例の設定により、256 2M の Huge Page が割り当てられ、hugepages=512 パラメーターが無視されていた警告メッセージが表示されます。hugepages が無効な hugepagesz の前に付けられる場合、ヒュージページ は無視されます。

default_hugepagesz = [HW]

このパラメーターは、デフォルトの Huge Page サイズを指定します。default_hugepagesz は、コマンドラインで 1 回のみ指定できます。オプションで、hugepages パラメーターで default_hugepagesz に従い、デフォルトサイズの特定の Huge Page 数を事前に割り当てることができます。また、事前に割り当てるデフォルトサイズの Huge Page の数を暗黙的に指定することができます。

たとえば、2M のデフォルトの Huge Page サイズを持つアーキテクチャーでは、以下のようになります。

hugepages=256
default_hugepagesz=2M hugepages=256
hugepages=256 default_hugepagesz=2M

上記の例の設定はすべて、256 2M の Huge Page が割り当てられます。有効なデフォルトの Huge Page サイズはアーキテクチャーによって異なります。

efi = [EFI]

形式: { "old_map", "nochunk", "noruntime", "debug", "nosoftreserve" }

オプションは次のとおりです。

  • old_map [X86-64] - 古い ioremap ベースの EFI ランタイムサービスへのマッピングに切り替えます。32 ビットがデフォルトでこのバージョンを使用します。
  • nochunk - チャンクにより一部のファームウェア実装で問題が発生する可能性があるため、EFI ブートスタブでファイルの読み取りを無効にします。
  • noruntime: EFI ランタイムサービスのサポートを無効にします。
  • debug: その他のデバッグ出力を有効にする
  • nosoftreserve: EFI_MEMORY_SP (Specific Purpose)属性により、カーネルが要求するメモリーマッピングドライバーのメモリー範囲を確保することがあります。efi=nosoftreserve を指定して、この予約を無効にし、ベースタイプでメモリーを処理します(例: EFI_CONVENTIONAL_MEMORY / "System RAM")。
intel_iommu = [DMAR]

Intel IOMMU ドライバー Direct Memory Access Remapping (DMAR)。

追加したオプションは以下のとおりです。

  • nobounce (デフォルトオフ): Thunderbolt デバイスなどの信頼できないデバイスのバウンスバッファーを無効にします。これにより、信頼できないデバイスが信頼できるデバイスとして処理されます。したがって、この設定では、ダイレクトメモリーアクセス (DMA) 攻撃のセキュリティーリスクが公開される可能性があります。
mem = nn[KMG] [KNL,BOOT]

このパラメーターは、特定のメモリー使用量を強制します。

以下のように使用するメモリーの量。

  1. テスト用。
  2. カーネルがシステムメモリー全体を確認できない場合
  3. メモリー 境界 がハイパーバイザーから除外された後に生じるメモリーは、KVM ゲストに割り当てられます。

    [X86] 最大アドレスの制限として機能します。物理アドレス空間の競合を避けるために memmap パラメーター と併用します。memmap を 使用 しないと、PCI(Peripheral Component Interconnect)デバイスは未使用の RAM に属するアドレスに配置される可能性があります。

    上記の 3 の場合、ハイパーバイザーのシステムメモリーが不十分であれば、起動後にメモリーをホットアドする必要がある場合があります。

pci = [PCI]

PCI (Peripheral Component Interconnect) サブシステムのオプション

一部のオプションは、特定のデバイスまたはデバイスセット(<pci_dev>)で動作します。これらは、以下のいずれかの形式で指定されます。

[<domain>:]<bus>:<dev>.<func>[/<dev>.<func>]*
pci:<vendor>:<device>[:<subvendor>:<subdevice>]

最初の形式では PCI バス/デバイス/機能アドレスが指定されており、新しいハードウェアが挿入された場合は、マザーボードファームウェアが変更されたり、他のカーネルパラメーターによって生じる変更により変更される可能性があることに注意してください。ドメインを指定しないと、ゼロになります。必要に応じて、複数のデバイス/機能アドレス経由のデバイスへのパスは、ベースアドレスの後に指定できます (これは、再番号の問題に対してより堅牢になります)。2 番目の形式は、システム内の複数のデバイスに一致する設定領域の ID を使用してデバイスを選択します。

オプションは次のとおりです。

  • hpmmiosize - ホットプラグブリッジのメモリーマッピング I/O(MMIO)ウィンドウ用に確保されるバス領域の固定量。デフォルトのサイズは 2 メガバイトです。
  • hpmmioprefsize - ホットプラグブリッジの MMIO_PREF ウインドウ用に予約されるバス領域の固定量。デフォルトのサイズは 2 メガバイトです。
pcie_ports = [PCIE]

Peripheral Component Interconnect Express (PCIe) ポートサービスの処理。

オプションは次のとおりです。

  • native: プラットフォームが OS パーミッションを提供しない場合でも、ネイティブの PCIe サービス(PME、AER、DPC、PCIe ホットプラグ)を使用します。この設定は、プラットフォームがこれらのサービスの使用を試行する場合に競合する可能性があります。
  • DPC ネイティブの - DPC にのみネイティブ PCIe サービスを使用してください。この設定は、ファームウェアが AER または DPC を使用する場合に競合する可能性があります。
  • compat: ネイティブの PCIe サービス(PME、AER、DPC、PCIe ホットプラグ)を無効にします。
rcu_nocbs = [KNL]
引数は CPU リストです。文字列「all」を使用して、システム上の全 CPU を指定できます。
usbcore.authorized_default = [USB]

デフォルトの USB デバイス認証。

オプションは次のとおりです。

  • -1 (デフォルト): ワイヤレス USB を除いて承認済み
  • 0 - 承認されていません
  • 1 - 承認済み
  • 2: デバイスが内部ポートに接続されている場合に承認済み
usbcore.old_scheme_first = [USB]
このパラメーターにより、古いデバイスの初期化スキームで開始できます。この設定は、低速および最速デバイス (デフォルトは 0 = off) にのみ適用されます。
usbcore.quirks = [USB]

ビルトイン USB コア quirk リストを拡張する Kirk エントリーの一覧。リストエントリーはコンマで区切ります。各エントリーの形式は VendorID:ProductID:Flags です(例: quirks =0781:5580:bk,0a5c:5834:gij)ID は 4 桁の 16 進数で、Flags は文字セットです。各文字は、ビルトインされた quirk を変更します。設定されていない場合は設定し、設定されている場合は消去します。

追加したフラグ:

  • O- USB_QUIRK_HUB_SLOW_RESET。ハブには、ポートをリセットした後に追加の遅延が必要になります。
新しい /proc/sys/fs パラメーター
protected_fifos

このパラメーターは、Openwall ソフトウェアの制限に基づいています。また、プログラムが通常のファイルを作成する、攻撃者が制御する FIFO への意図しない書き込みを避けることで、保護を提供します。

オプションは次のとおりです。

  • 0: FIFO への書き込みは無制限です。
  • 1: ディレクトリーの所有者が所有しない限り、すべてのユーザーが書き込み可能なスティッキーディレクトリーで所有していない FIFO で O_CREAT フラグ を開くことはできません。
  • 2: グループの書き込み可能なスティッキーディレクトリーに適用されます。
protected_regular

このパラメーターは protected_fifos パラメーター と似ていますが、プログラムが作成する予定の攻撃者が制御する通常のファイルに書き込みを防ぎます。

オプションは次のとおりです。

  • 0: 通常ファイルへの書き込みは制限されません。
  • 1: ディレクトリーの所有者が所有しない限り、すべてのユーザーが書き込み可能なスティッキーディレクトリーで所有していない通常のファイルで O_CREAT フラグ を開くことはできません。
  • 2: グループの書き込み可能なスティッキーディレクトリーに適用されます。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。