クラッシュ後もカーネルモジュールはロードされ続け、アンロードできません。

クラッシュ後もカーネルモジュールはロードされ続け、アンロードできません。

Linuxカーネル(バージョン3.19.0)で興味深い動作を見つけました。ネットワークドライバをテストしていましたが、システムが完全に中断され、SysRqコマンドにも応答しませんでした。再起動後も、テスト中のドライバは起動時にロードするように設定されていないにもかかわらず、まだロードされているとマークされています。さらに悪いことは、modprobe -rまたはで削除できないことですrmmod -f。カーネルログには有用な情報は表示されません。

私たちは引き続き再起動しようとしましたが、モジュールをブラックリストに追加しようとしましたが、常にロードされたモジュールとしてマークされました。私たちが見つけた唯一の解決策は、カーネル(apt-get remove/install linux-image-$(uname-r))を再インストールすることでした。それから消えて、すべてが再び完全に機能し始めました。

ここで何が起こっているのか、そして明示的にしないように指示したのに、カーネルがモジュールをロードする理由を知っている人はいますか?

編集する:再構成しても問題は解決しなかったため、カーネルパッケージを再インストールする必要がありました。

ベストアンサー1

たぶん、モジュールがinitrdフェーズでロードされた可能性があります。この段階で、ブートローダは特別なファイルをロードし、それをカーネルに渡します。カーネルはそれをファイルシステムとしてマウントし、そこからさまざまなモジュールをロードします。元の目的は、可能なすべてのドライバをカーネルにコンパイルせずにルートファイルシステムを読み取るために必要なドライバをロードすることでした。さまざまなディストリビューションは通常、カーネルの更新時にさまざまな方法でinitrdファイルを再生成します。 Debian ベースのディストリビューションをお使いの場合は、次のことをお試しください。https://wiki.debian.org/KernelModuleブラックリストの作成

おすすめ記事