modprobe.d 블랙리스트 무시

modprobe.d 블랙리스트 무시

우분투 18.04를 사용하고 있습니다. 시작 시 모듈을 로드하려고 합니다. 문제의 모듈은 iTCO_wdt입니다. 커널 모듈 블랙리스트에 관한 질문이 많은데 그 중 하나를 화이트리스트에 올려보려고 합니다.

시작 시 모듈을 로드하기 위해 수행한 단계는 다음과 같습니다.

  1. iTCO_wdt/etc/modules에 추가 (/etc/modules-load.d/modules.conf에 대한 심볼릭 링크)
  2. blacklist iTCO_wdt/etc/modprobe.d/blacklist-watchdog.conf의 행을 주석 처리합니다.

나는 이것이 충분하다고 생각했지만 syslog에는 여전히 모듈이 블랙리스트에 등록되어 있다고 표시됩니다.

systemd-modules-load[331]: Module 'iTCO_wdt' is blacklisted

조사한 결과, 여러 관리자가 /lib/modprobe.d에 설치한 블랙리스트 파일에도 해당 모듈이 블랙리스트에 등록되어 있음을 발견했습니다.

$ grep -l 'blacklist iTCO_wdt' /lib/modprobe.d/*
/lib/modprobe.d/blacklist_linux_4.15.0-20-generic.conf
/lib/modprobe.d/blacklist_linux_4.15.0-23-generic.conf

각 파일이 modprobe 동작에 영향을 미친다는 사실을 발견했습니다. 이는 linux_4.15.0.23-generic이 현재 커널일 때 linux_4.15.0.20-generic.conf 파일이 시스템 동작에 영향을 미칠 것으로 예상하지 않기 때문에 놀라운 일입니다. .

각 파일의 행을 주석 처리 blacklist iTCO_wdt하고 다시 시작하면 모듈이 자동으로 로드되는데, 이는 원하는 동작입니다.

따라서 내가 보기에 /lib/modprobe.d 파일에 의해 블랙리스트에 등록된 경우에도 모듈을 로드하는 방법에는 여러 가지가 있습니다.

  • blacklist iTCO_wdt각 파일의 행을 수동으로 주석 처리
  • 시작 시 실행되는 자체 스크립트에 모듈 로드

문제는 향후 업데이트에서 iTCO_wdt를 다시 블랙리스트에 올릴 수 있는 새로운 /lib/modprobe.d 블랙리스트 파일을 설치할 수 있다는 것입니다. 이를 염두에 두고 가장 좋은 옵션은 마지막 옵션인 것 같습니다. 하지만 내장된 모듈 로딩 시스템이 아닌 자체 스크립트에 의존하기 때문에 정말 마음에 들지 않습니다.

커널을 업데이트할 때마다 /lib/modprobe.d 파일을 편집하고 싶지 않다는 점을 고려하면 모듈 로딩 시스템에서 iTCO_wdt 모듈을 영구적으로 화이트리스트에 추가하는 가장 좋은 방법은 무엇입니까?

답변1

방금이 문제가 발생했습니다. 내가 찾은 해결책(watchdog 문서를 읽음으로써)http://www.sat.dundee.ac.uk/psc/watchdog/Linux-Watchdog.html)은 커널 모듈(iTCO_wdt)의 이름을 /etc/default/watchdog으로 편집하는 것입니다. 따라서 다음 줄을 변경하십시오.

워치독 모듈="없음"

도착하다

watchdog_module="iTCO_wdt"

블랙리스트 파일이나 다른 것을 변경할 필요가 없습니다. (Mint 19.1에서) 그냥 작동합니다!

문서에 명시된 바와 같이 이는 OP에 설명된 동작을 우회하며 systemd의 버그로 간주되는 것 같습니다.

답변2

실제로는 initrd(ramdisk)에 의해서도 차단됩니다. 또한 램디스크의 블랙리스트 구성을 업데이트해야 합니다.

$ sudo 업데이트-initramfs -u

관련 정보