5.2. 외부 커널 매개변수로 중요한 변경


이 장에서는 시스템 관리자에게 Red Hat Enterprise Linux 8.3과 함께 제공되는 커널의 중요한 변경 사항을 요약해서 설명합니다. 이러한 변경에는 추가 또는 업데이트된 proc 항목, sysctlsysfs 기본값, 부팅 매개 변수, 커널 구성 옵션 또는 눈에 띄게 동작 변경이 포함될 수 있습니다.

새 커널 매개변수
acpi_no_watchdog = [HW,ACPI,WDT]
이 매개 변수를 사용하면 고급 구성 및 전원 인터페이스(ACPI) 기반 워치독 인터페이스(WDAT)를 무시하고 기본 드라이버가 워치독 장치를 대신 제어하도록 합니다.
dfltcc = [HW,S390]

이 매개 변수는 IBM Z 아키텍처에 대한 zlib 하드웨어 지원을 구성합니다.

형식: { on | off | def_only | inf_only | always }

옵션은 다음과 같습니다.

  • 에서 (기본값) - 레벨 1에서의 압축 및 압축 해제를 위한 IBM Z zlib 하드웨어 지원
  • off - IBM Z zlib 하드웨어 지원 없음
  • deflate 알고리즘에 대한 IBM Z zlib 하드웨어 지원(레벨 1에 대한 압축)
  • inf_only - IBM Z zlib 하드웨어가 비플릿 알고리즘에 대한 지원 (압축 해제)
  • Always - 와 유사하지만 선택한 압축 수준을 무시하고 항상 하드웨어 지원을 사용합니다(디렉터리에 사용됨)
irqchip.gicv3_pseudo_nmi = [ARM64]

이 매개변수는 커널에서 마스크 불가능 인터럽트(NMI)를 지원합니다.

이 매개 변수를 사용하려면 CONFIG_ARM64_PS EUDO_NMI 구성 항목을 사용하여 커널을 빌드해야 합니다.

panic_on_taint =

add_taint ()에서 panic() 을 조건부로 호출하는 비트마스크

형식: <hex>[,nousertaint]

이 세트에서 add_taint() 시스템 호출을 호출할 때 커널이 패닉을 발생시키는 TAINT 플래그 세트를 나타내는 16진수 비트마스크입니다. 선택 사항인 nousertaint 스위치는 panic_on_taint의 비트마스크와 일치하는 플래그 세트와 일치하는 /proc/sys/kernel/tainted 파일에 기록하여 사용자 공간 강화 충돌을 방지합니다.

자세한 내용은 업스트림 문서를 참조하십시오.

prot_virt = [S390]

형식: <bool>

이 매개 변수를 사용하면 하드웨어 지원이 있는 경우 하이퍼바이저와 격리된 보호된 가상 시스템을 호스팅할 수 있습니다.

rcutree.use_softirq = [KNL]

이 매개 변수를 사용하면 Tree-RCU softirq 처리를 제거할 수 있습니다.

이 매개변수를 0으로 설정하면 모든 RCU_SOFTIRQ 처리를 CPU당 rcuc kthreads로 이동합니다. rcutree.use_softirq 를 0이 아닌 값(기본값)으로 설정하면 RCU_SOFTIRQ 가 기본적으로 사용됩니다. rcuc kthreads를 사용하려면 rcutree.use_softirq=0 을 지정합니다.

split_lock_detect = [X86]

이 매개변수는 분할 잠금 탐지를 활성화합니다. 활성화되고 하드웨어 지원이 있는 경우 캐시 라인 경계에서 데이터에 액세스하는 원자성 지침으로 인해 정렬 확인 예외가 발생합니다.

옵션은 다음과 같습니다.

  • off - 활성화되지 않음
  • 경고 - 커널이 Alignment Check Exception(#AC)을 트리거하는 애플리케이션에 대한 속도 제한 경고를 발송합니다. 이 모드는 분할 잠금 탐지를 지원하는 CPU의 기본값입니다.
  • 치명적 - 커널은 #AC 예외를 트리거하는 애플리케이션에 버스 오류(SIGBUS) 신호를 보냅니다.

    사용자 모드에서 실행하지 않는 동안 #AC 예외가 충돌하면 커널은 경고 또는 치명적인 모드에서 oops 오류를 실행합니다.

srbds = [X86,INTEL]

이 매개변수는 SRBDS(Special Register Buffer Data Sampling) 완화를 제어합니다.

특정 CPU는 MDS(Microarchitectural Data Sampling)에 취약하여 임의 번호 생성기로부터 비트를 누출할 수 있습니다.

기본적으로 마이크로코드는 이 문제를 완화합니다. 그러나 마이크로 코드 수정으로 RDRANDRDSEED 명령이 훨씬 느려질 수 있습니다. 이로 인해 urandom 커널 임의 소스 장치에서 처리량이 줄어듭니다.

마이크로 코드 완화를 비활성화하려면 다음 옵션을 설정합니다.

  • off - 완화를 비활성화하고 RDRANDRDSEED에 대한 성능 영향을 제거
svm = [PPC]

형식: { on | off | y | n | 1 | 0 }

이 매개변수는 pSeries 시스템에서 보호된 실행 기능 사용을 제어합니다.

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

이 매개변수는 PV 최적화를 비활성화하여 게스트가 PV 드라이버 없이 일반 게스트로 실행되도록 합니다.

현재 지원되는 XEN HVM, KVM, HYPER_V 및 VMWARE 게스트.

업데이트된 커널 매개변수
hugepagesz = [HW]

이 매개변수는 대규모 페이지 크기를 지정합니다. 지정된 크기의 대규모 페이지를 미리 할당하려면 hugepages 매개변수와 함께 이 매개변수를 사용합니다.

다음과 같이 hugepageszhugepages 매개변수를 쌍으로 지정합니다.

hugepagesz=2M hugepages=512

hugepagesz 매개변수는 특정 대규모 페이지 크기에 대해 명령줄에서 한 번만 지정할 수 있습니다. 유효한 대규모 페이지 크기는 아키텍처에 따라 다릅니다.

hugepages = [HW]

이 매개 변수는 사전 할당할 대규모 페이지 수를 지정합니다. 이 매개 변수는 일반적으로 유효한 hugepagesz 또는 default_hugepagesz 매개 변수를 따릅니다.

그러나 hugepages 가 첫 번째 또는 유일한 HugeTLB 명령줄 매개 변수인 경우 할당할 기본 크기의 대규모 페이지 수를 암시적으로 지정합니다. 기본 크기의 대규모 페이지 수를 암시적으로 지정하는 경우 기본 크기에 대한 hugepagesz + hugepages 매개변수 쌍으로 덮어쓸 수 없습니다.

예를 들어 2M의 기본 대규모 페이지 크기가 있는 아키텍처에서 다음을 수행합니다.

hugepages=256 hugepagesz=2M hugepages=512

위의 예에서 설정하면 256 2M 대규모 페이지가 할당되고 hugepages=512 매개 변수가 무시된 경고 메시지가 표시됩니다. hugepages 앞에 잘못된 hugepages z 가 있으면hugepages 가 무시됩니다.

default_hugepagesz = [HW]

이 매개변수는 기본 대규모 페이지 크기를 지정합니다. 명령행에서 default_hugepagesz 를 한 번만 지정할 수 있습니다. 선택적으로 default_hugepagesz 를 hugepages 매개변수로 따라 기본 크기의 특정 대규모 페이지 수를 사전 할당할 수 있습니다. 또한 사전 할당할 기본 대규모 페이지 수를 암시적으로 지정할 수 있습니다.

예를 들어 2M의 기본 대규모 페이지 크기가 있는 아키텍처에서 다음을 수행합니다.

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

위의 예제의 설정은 모두 256 2M 대규모 페이지를 할당합니다. 유효한 기본 대규모 페이지 크기는 아키텍처에 따라 다릅니다.

efi = [EFI]

Format: { "old_map", "nochunk", "noruntime", "debug", "nosoftreserve" }

옵션은 다음과 같습니다.

  • old_map [X86-64] - 기존의 ioremap 기반 EFI 런타임 서비스 매핑으로 전환합니다. 32비트는 기본적으로 이 파일을 계속 사용합니다.
  • nochunk - 일부 펌웨어 구현에서 문제를 일으킬 수 있으므로 EFI 부트 스텁의 "청크"에서 파일을 읽지 않도록 설정할 수 있습니다.
  • noruntime - EFI 런타임 서비스 지원 비활성화
  • debug - 기타 디버그 출력 활성화
  • nosoftreserve - EFI_MEMORY_SP (특정 용도) 속성으로 인해 커널이 메모리 매핑 드라이버의 메모리 범위를 클레임하는 경우가 있습니다. 이 예약을 비활성화하고 기본 유형(예: EFI_CONVENTIONAL_MEMORY / "System RAM")으로 메모리를 처리하려면 efi=nosoftreserve 를 지정합니다.
intel_iommu = [DMAR]

Intel IOMMU 드라이버 DMAR(Direct Memory Access Remapping).

추가 옵션은 다음과 같습니다.

  • nobounce (기본값 끄기) - HFS 장치와 같은 신뢰할 수 없는 장치에 대해 바운스 버퍼 비활성화. 이렇게 하면 신뢰할 수 없는 장치를 신뢰할 수 있는 장치로 처리합니다. 따라서 이 설정은 DMA(직접 메모리 액세스) 공격의 보안 위험을 초래할 수 있습니다.
mem = nn[KMG] [KNL, BoOT]

이 매개 변수는 특정 메모리 양을 강제로 사용합니다.

사용할 메모리 양은 다음과 같습니다.

  1. 테스트용.
  2. 커널이 전체 시스템 메모리를 볼 수 없는 경우.
  3. 하이퍼바이저에서 mem 경계를 제외한 후 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 버스/장치/기능 주소를 지정합니다. 도메인이 지정되지 않은 경우 0이 됩니다. 또는 기본 주소 이후에 여러 장치/기능 주소를 통해 장치의 경로를 지정할 수 있습니다(문제의 번호 변경에 대해 더 강력함). 두 번째 형식은 구성 공간의 ID를 사용하여 시스템의 여러 장치와 일치할 수 있는 장치를 선택합니다.

옵션은 다음과 같습니다.

  • hpmmiosize - 핫플러그 브리지의 메모리 매핑 I/O(MMIO) 창에 예약된 고정된 버스 공간입니다. 기본 크기는 2MB입니다.
  • hpmmioprefsize - 핫플러그 브리지의 MMIO_PREF 창을 위해 예약된 고정된 버스 공간 기본 크기는 2MB입니다.
pcie_ports = [PCIE]

PCIe(Wear Component Interconnect Express) 포트 서비스 처리.

옵션은 다음과 같습니다.

  • 네이티브 - 플랫폼이 OS에서 사용할 수 있는 권한을 제공하지 않아도 기본 PCIe 서비스(PME, AER, DPC, PCIe 핫플러그) 사용. 플랫폼에서 이러한 서비스를 사용하려는 경우에도 이러한 설정이 충돌할 수 있습니다.
  • DPC -native - 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 = 꺼짐).
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 - 쓰기 가능한 Sticky 디렉토리에 적용됩니다.
protected_regular

이 매개 변수는 protected_fifos 매개변수와 비슷하지만, 프로그램을 생성하려는 공격자가 제어하는 정규 파일에 쓰기를 방지할 수 있습니다.

옵션은 다음과 같습니다.

  • 0 - 일반 파일에 쓰는 것은 제한되지 않습니다.
  • 1 - 디렉터리 소유자가 소유하지 않는 한 world writable sticky directory에 소유하지 않는 일반 파일에서 O_CREAT 플래그를 열도록 허용하지 않습니다.
  • 2 - 쓰기 가능한 Sticky 디렉토리에 적용됩니다.
Red Hat logoGithubRedditYoutube

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.