回答:
前の回答で述べたようにモジュールをブラックリストに登録することは、カーネルモジュールを完全に回避する最良の方法です。ブラックリストを除いて、モジュールを無効にする一般的な方法はありません。
一部のLinuxディストリビューションは、このようなことを行うためのカーネルブートパラメーターを提供しています。
load_modules=off
udevに自動読み込みをスキップさせます。これにより、モジュールを読み込まずに起動し、問題の原因となっているモジュールをブラックリストに登録し、問題のあるモジュールを読み込まずに通常どおり再起動できます。詳細については、カーネルパラメータのドキュメントをご覧ください。特定のサブシステムを無効にするためのパラメーターがあります。例えば:
nousb
カーネルUSBサポートを無効にしますcgroup_disable=[name]
特定のコントローラーを無効にします。ただし、「メモリ」は特にサポートされている唯一の例ですlibata.noacpi
libata(SATAコントローラー)でのACPIの使用を無効にします。これは、カーネルを介してモジュールパラメータを渡す例ですブートローダーから特定のモジュールを無効にすることは可能ですが、実際にはディストリビューション依存のように見えます。
一方、Linuxカーネルパラメータのドキュメントには、2016年8月の時点で次のように記載されています。
module_blacklist=
[KNL]モジュールのコンマ区切りリストをロードしません。問題のあるモジュールのデバッグに役立ちます。
一方、openSUSE 42.1(Linux 4.1.31)で機能したオプションは、Arch Kernel modules wikiで説明されてい ます。
ブートローダーからモジュールをブラックリストに登録することもできます。追加するだけ
modprobe.blacklist=modname1,modname2,modname3
カーネルパラメータで説明されているように、ブートローダーのカーネル行に追加します。複数のモジュールをブラックリストに登録する場合、それらはカンマでのみ区切られていることに注意してください。スペースなどを使用すると、構文が壊れる可能性があります。
(おかげで@gertvdijkする unix.SEこのアウトを指し示すため。)
特定のモジュールがgrubコマンドラインを使用してカーネルによってロードされるのを防ぐために、以下の構文を使用して、それらをパラメーターとしてカーネルラインに渡す必要があります。
$module_name.blacklist=yes
私は彼らがそれをどこから得たのかわかりませんが、他のすべてが失敗した場合でも他の方法を試しても間違いはありません。
/etc/modprobe.d/blacklistまたはブラックリスト「モジュール名」に追加できるはずです