検索

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

download PDF

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

新しいカーネルパラメーター
acpi_no_watchdog = [HW,ACPI,WDT]
このパラメーターを使用すると、Advanced Configuration and Power Interface (ACPI) ベースのウォッチドッグインターフェイス (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: inflate アルゴリズムの IBM Z zlib ハードウェアサポート (デプロイメント)
  • always: on と似ていますが、選択した圧縮レベルを無視し、常にハードウェアサポートを使用します (デバッグに使用)。
irqchip.gicv3_pseudo_nmi = [ARM64]

このパラメーターは、カーネル内の擬似マスク不可割り込み (NMI) のサポートを有効にします。

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

panic_on_taint =

add_taint() で、条件付きで panic() を呼び出すビットマスク。

形式: <hex>[,nousertaint]

TAINT フラグのセットのフラグで add_taint() システムコールが呼び出される際に、このフラグのセットを表す 16 進数のビットマスク。オプションの nousertaint スイッチは、/proc/sys/kernel/tainted ファイルに書き込むことでユーザー空間の強制を阻止します。これは、panic_on_taint のビットマスクに一致するフラグセットに通知します。

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

prot_virt = [S390]

形式: <bool>

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

rcutree.use_softirq = [KNL]

このパラメーターは、Tree-RCU の softirq 処理の排除を有効にします。

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

split_lock_detect = [X86]

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

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

  • off - 有効ではありません
  • warn: カーネルは、Alignment Check Exception (#AC) をトリガーするアプリケーションについてレート制限警告を生成します 。このモードは、分割されたロック検出をサポートする CPU のデフォルトです。
  • 'fatal: カーネルは、#AC 例外をトリガーするアプリケーションに Buss エラー (SIGBUS) シグナルを送信します。

    #AC 例外がユーザーモードで実行されていない場合、カーネルは warn または fatal モードのいずれかで oops エラーを発行します。

srbds = [X86,INTEL]

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

特定の CPU は、マイクロアーキテクチャーデータサンプリング (MDS) のような不正使用に対して脆弱です。このような不正使用が発生すると、乱数ジェネレーターからビットが漏洩する可能性があります。

デフォルトでは、マイクロコードはこの問題を軽減します。ただし、マイクロコードの修正により、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]

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

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

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

hugepages=256 hugepagesz=2M hugepages=512

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

default_hugepagesz = [HW]

このパラメーターは、デフォルトの Huge Page サイズを指定します。default_hugepagesz は、コマンドラインで 1 回のみ指定できます。オプションとして、default_hugepageszhugepages パラメーターに従って実行し、デフォルトサイズの特定の 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-bit は依然として、デフォルトでこれを使用します。
  • nochunk: EFI ブートスタブの chunks 内のファイルの読み取りを無効にします。チャンクすると一部のファームウェアの実装で問題が発生する可能性があります。
  • 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 (デフォルト off)- Thunderbolt デバイスなどの信頼できないデバイスのバウンスバッファーを無効にします。これにより、信頼できないデバイスを信頼できるデバイスとして扱います。したがって、この設定により、ダイレクトメモリーアクセス (DMA) 攻撃のセキュリティーリスクにさらされる可能性があります。
mem = nn[KMG] [KNL,BOOT]

このパラメーターにより、特定のメモリー量の使用が強制されます。

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

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

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

    この設定は、上記の場合 3 以降、ブート時の場合にのみ有効であることに注意してください。これは、ハイパーバイザーのシステムメモリーが十分にない場合に、ブート後にメモリーを追加する必要がある場合があります。

pci = [PCI]

さまざまな Peripheral Component Interconnect (PCI) サブシステムオプション。

ここでの一部のオプションは、特定のデバイスまたはデバイスセット (<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]

PCIe (peripheral Component Interconnect Express) ポートサービスを処理する。

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

  • native: プラットフォームが OS ホットプラグを付与していない場合でも、ネイティブの PCIe サービス (PME、AER、DPC、PCIPC、PCIPC) を使用します。この設定は、プラットフォームがこれらのサービスも使用しようとすると、競合が発生する可能性があります。
  • DPC-native - DPC にネイティブ PCIe サービスのみを使用します。この設定では、ファームウェアが AER または DPC を使用する場合は競合が発生する可能性があります。
  • compat: ネイティブ PCIe サービス (PME、AER、DPC、PCIPC ホットプラグ) を無効にします。
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 リストを拡張する quirk エントリーのリスト。リストエントリーはコンマで区切られます。各エントリーには VendorID:ProductID:Flags の形式 (例: quirks=0781:5580:bk,0a5c:5834:gij) があります。ID は 4 桁の 16 進数で、フラグ は文字のセットです。各文字は、組み込みの 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: グループの書き込み可能なスティッキーディレクトリーに適用されます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.