modprobe カーネルモジュールを依存関係ごと読み込み、取り外す
modprobe [オプション] モジュール名試してみる
sudo modprobe -n -v loop実際には読み込まず、何をするかだけを表示します(-n は試し実行、-v は詳しい表示)。
sudo modprobe looploop モジュールを読み込みます。管理者権限が必要なので sudo を付けます。
lsmod | grep ^loop読み込まれたことを確認します。
/sbin/modinfo loop | head -5モジュールの情報(ファイルの場所、説明、ライセンスなど)を表示します。
sudo modprobe -r loopモジュールを取り外します(使用中だと失敗します)。
lsmod | grep ^loop || echo 読み込まれていません取り外されたことを確認します。
主なオプション
-r | モジュールを取り外す(依存して読み込まれたものも、不要なら外す) |
|---|---|
-n | 実際には何もせず、実行する内容だけを表示する |
-v | 何をしているかを詳しく表示する |
-c | 現在の設定を表示する |
-l | 利用できるモジュールの一覧を表示する |
解説
依存関係も面倒を見る
モジュールには、ほかのモジュールを先に読み込まなければ動かないものがあります。modprobe は、modules.dep という依存関係の情報を見て、必要なモジュールを順番に読み込みます。似たコマンドの insmod は、指定したファイルを1つ読み込むだけで、依存は解決しません。取り外しも同様で、rmmod は1つだけ、modprobe -r は不要になった依存モジュールも外します。
モジュールの場所と設定
モジュールのファイルは /lib/modules/カーネルのバージョン/ にあります。名前の .ko を除いたものを modprobe に渡します(ファイル名やパスは不要)。起動時の読み込みや、モジュールのオプションの設定、読み込みの禁止は、/etc/modprobe.d/ の設定ファイルで行います。
| 設定ファイルの書き方 | 意味 |
|---|---|
options モジュール 設定 |
読み込むときのオプションを与える |
blacklist モジュール |
自動の読み込みをしない |
alias 別名 モジュール |
別名をつける |
関連する情報
lsmod で読み込み状況を、modinfo で詳細を確認できます。/etc/modules(Debian系)や /etc/modules-load.d/ に名前を書くと、起動時に読み込めます。
権限と PATH
読み込みや取り外しは root の権限が必要です。modprobe は /sbin にあり、一般ユーザーの PATH にはない場合があります。sudo modprobe なら見つかります。