시작 시 커널 모듈을 명시적으로 로드

시작 시 커널 모듈을 명시적으로 로드

커널 자동 로딩을 허용하지 않는 grsecurity 커널을 사용하고 있으므로 여러 시스템 서비스가 작동하지 않습니다. 모듈을 수동으로 로드 modprobe하고 다시 시작한 후 모든 것이 잘 작동했지만 다소 더러운 솔루션입니다. 시작하는 동안 이 작업을 "올바르게" 수행하고 싶습니다.

운영 체제는 grsec 커널을 사용하는 Arch Linux입니다.

답변1

이는 초기화 시스템(systemd 또는...)에 따라 다소 다르지만 옵션은 다음과 같습니다.

  • 커널 명령줄 매개변수

    모듈 로딩=

  • /etc/modules-load.d/modules.conf

    # /etc/modules: 시작 시 로드되는 커널 모듈. # 이 파일에는 부팅 시 로드되어야 하는 커널 모듈의 이름이
    한 줄에 하나씩 포함되어 있습니다.
    "#"으로 시작하는 줄은 무시됩니다.

데스크톱/노트북 컴퓨터의 경우 일반적으로 장치를 연결하고 드라이버 모듈을 로드할 수 있기를 원합니다.

이것이 사용 사례가 아닌 경우 관련 모듈 코드를 정적으로 링크하여 커널을 컴파일하고(모듈 로딩이 전혀 발생하지 않음) 모듈 시스템을 완전히 비활성화하는 것도 고려할 수 있습니다. 32비트 아키텍처에서는 커널 바이너리 크기에 제한이 있습니다(정적으로 컴파일할 수 있는 모듈 수 제한).

바라보다: "로컬 구성 변경"

관련된:추가 모듈 로딩을 방지하려면 sysctl을 사용하십시오.

관련된:Fedora, 시작 시 모듈 로드

답변2

.kernel 파일에 conf 파일을 배치하면 커널이 시작된 후 모듈이 자동으로 로드됩니다 /etc/modules-load.d/mymodules.conf.

# Modules to load.
mymodule.ko

그게 다야, 가도 돼.

로드할 필요가 없는 모듈을 블랙리스트에 추가할 수도 있습니다. 블랙리스트에 있는 모듈은 일반적으로 에 있습니다 /etc/modprobe.d. 여기에 conf 파일을 만들고 로드되지 않는 모듈을 나열하십시오.

# Modules to prevent from loading.
blacklist mybadmodule.ko

관련 정보