답변:
이전 답변에서 언급 한대로 모듈을 블랙리스트에 올리는 것이 커널 모듈을 완전히 피하는 가장 좋은 방법입니다. 블랙리스트 이외에, 모듈을 비활성화하는 일반적인 방법은 없습니다.
일부 Linux 배포판은 이와 같은 작업을 수행하기 위해 커널 부팅 매개 변수를 제공합니다.
load_modules=off
udev가 자동 로딩을 건너 뛰도록합니다. 이렇게하면 모듈을로드하지 않고 부팅하고 문제를 일으키는 모듈을 블랙리스트에 추가하고 문제가있는 모듈을로드하지 않고 정상적으로 재부팅 할 수 있습니다.자세한 내용은 커널 매개 변수 설명서를 참조하십시오 . 특정 서브 시스템을 비활성화하기위한 매개 변수가 있습니다. 예를 들면 다음과 같습니다.
nousb
커널 USB 지원 비활성화cgroup_disable=[name]
특정 컨트롤러를 비활성화합니다. 그러나 "메모리"는 특별히 지원되는 유일한 예입니다.libata.noacpi
libata (SATA 컨트롤러)에서 ACPI 사용을 비활성화합니다. 이것은 커널을 통해 모듈 매개 변수를 전달하는 예제입니다특정 모듈을 비활성화하면 입니다 부트 로더에서 가능하지만, 외모 배포판에 의존처럼 참.
한편으로, Linux Kernel Parameters 문서는 2016 년 8 월 현재 상태를 나타냅니다.
module_blacklist=
[KNL] 쉼표로 구분 된 모듈 목록을로드하지 마십시오. 문제 모듈을 디버깅하는 데 유용합니다.
다른 한편으로, openSUSE 42.1 (Linux 4.1.31)에서 나를 위해 일한 옵션은 Arch Kernel modules wiki에 설명되어 있습니다 .
부트 로더에서 모듈을 블랙리스트에 올릴 수도 있습니다. 간단히 추가
modprobe.blacklist=modname1,modname2,modname3
커널 매개 변수에 설명 된대로 부트 로더의 커널 라인에 둘 이상의 모듈을 블랙리스트에 올릴 때는 쉼표로만 구분됩니다. 공백이나 다른 것들은 아마도 구문을 깨뜨릴 수 있습니다.
(unix.SE의 @gertvdijk 에게 감사드립니다 .)
또한 언급 할 가치가 있는 방법은 다음과 같습니다 .
grub 명령 줄을 사용하여 커널이 특정 모듈을로드하지 못하도록하려면 아래 구문을 사용하여 커널 모듈에 매개 변수로 모듈을 전달해야합니다.
$module_name.blacklist=yes
나는 그들이 어디에서 그것을 얻었는지 전혀 모른다. 그러나 다른 모든 방법이 실패하더라도 다른 방법을 시도하는 것이 확실히 아프지 않을 것이다.
/etc/modprobe.d/blacklist 또는 블랙리스트 'modulename'에 추가 할 수 있어야합니다.