5.2. 外部カーネルパラメーターの重要な変更
本章では、システム管理者向けに、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 Zzlibハードウェアサポート -
off- IBM Zzlibハードウェアのサポートはありません。 -
def_only:deflateアルゴリズムの IBM Zzlibハードウェアサポート (レベル 1 の圧縮) -
inf_only:inflateアルゴリズムの IBM Zzlibハードウェアサポート (デプロイメント) -
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=2M hugepages=512Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
hugepages=256 hugepagesz=2M hugepages=512Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の例からの設定により、256 2M の Huge Page の割り当てと、
hugepages=512パラメーターが無視される警告メッセージが表示されます。hugepagesが無効なhugepageszの前に付けられると、hugepagesは無視されます。- default_hugepagesz = [HW]
このパラメーターは、デフォルトの Huge Page サイズを指定します。
default_hugepageszは、コマンドラインで 1 回のみ指定できます。オプションとして、default_hugepageszをhugepagesパラメーターに従って実行し、デフォルトサイズの特定の Huge Page を事前割り当てできます。また、事前に割り当てるために、デフォルトサイズの Huge Page の数を暗黙的に指定することもできます。たとえば、2M のデフォルトの Huge Page サイズを持つアーキテクチャーの場合は、以下のようになります。
hugepages=256 default_hugepagesz=2M hugepages=256 hugepages=256 default_hugepagesz=2M
hugepages=256 default_hugepagesz=2M hugepages=256 hugepages=256 default_hugepagesz=2MCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の例からの設定により、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]
このパラメーターにより、特定のメモリー量の使用が強制されます。
以下のように、使用するメモリー量。
- テスト用です。
- カーネルがシステムメモリー全体を表示できない場合
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>]
[<domain>:]<bus>:<dev>.<func>[/<dev>.<func>]* pci:<vendor>:<device>[:<subvendor>:<subdevice>]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 最初の形式は、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: グループの書き込み可能なスティッキーディレクトリーに適用されます。
-