Linuxシステムの起動時に、一部のカーネルモジュールのロードを無効にする必要がある場合があります。このガイドでは、Ubuntuおよびその他のDebianベースのディストリビューションで、依存関係を含むモジュールをブラックリストに登録するためのいくつかの異なる方法について説明します。これにより、起動時にモジュールをロードできなくなります。
このチュートリアルでは、次のことを学びます。
- Ubuntu/DebianベースのLinuxディストリビューションでカーネルモジュールをブラックリストに登録する方法
UbuntuLinuxでカーネルモジュールをブラックリストに登録する
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
システム | Debianベースのディストリビューション |
ソフトウェア | N / A |
その他 | rootまたはsudo を介したLinuxシステムへの特権アクセス コマンド。 |
コンベンション | # –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
ロードからのブラックリストモジュール
以下の手順に従って、カーネルモジュールがシステムにロードされないようにブラックリストに登録する方法を確認してください。
- Linuxシステムによって現在ロードされているすべてのモジュールを一覧表示することから始めましょう:
$ lsmod .... ehci_hcd 40249 0 usbcore 128741 4 ehci_hcd,ohci_hcd,usbhid usb_common 12354 1 usbcore e1000 86156 0 libata 140630 4 libahci,ahci,ata_piix,ata_generic ....
lsmod
コマンドは、現在ロードされているすべてのカーネルモジュールを一覧表示します。上記のlsmod
出力が短縮されました。 -
usbcore
をブラックリストに登録するとしましょう モジュール。モジュールをアンロードまたはブラックリストに登録する前に、他のモジュールがそれに依存していることを確認しておくとよいでしょう。$ modinfo -F depends usbcore usb-common
- 上記の出力から、
usb-common
モジュールはusbcore
に依存します 。依存関係のないモジュールをブラックリストに登録するには、/etc/modprobe.d/blacklist.conf
を作成します。 (まだ存在しない場合)ファイルを作成し、それに次の行を追加します:blacklist usbcore
- 完了したら、initramfsを更新し、システムを再起動します。
# update-initramfs -u # reboot
再起動後、lsmod
を使用します モジュールが現在ロードされているかどうかを確認します。上記の例のように、他のモジュールがブラックリストに登録しようとしているモジュールに依存している場合は、すべての依存モジュールをブラックリストに登録する必要があります。そうしないと、ブラックリストに登録した最初のモジュールがロードされます。幸い、依存関係を含むすべてのモジュールをブラックリストに登録するトリックがあります。
何らかの理由でモジュールとそのすべての依存関係をブラックリストに登録できない場合は、モジュールの読み込みに失敗し、すべての依存モジュールが読み込まれないようにします。次の行を/etc/modprobe.d/blacklist.conf
に追加します usbcore
を完全にブラックリストに登録するには 依存するすべてのモジュールを含む:
install usbcore /bin/true
次に、initramfsを更新して再起動します:
# update-initramfs -u
完全を期すために、ブラックリストに登録されたモジュールごとに個別のモジュール構成ファイルを作成することをお勧めします。たとえば、モジュールe1000
をブラックリストに登録する場合 、次に別の/etc/modprobe.d/e1000.conf
を作成します ファイル。
まとめ
このガイドでは、Ubuntuおよびその他のDebianベースのLinuxシステムでカーネルモジュールをブラックリストに登録する方法を説明しました。これは、起動時にモジュールが一時的または永続的にロードされないようにする必要がある場合に役立ちます。モジュールをもう一度ロードできるようにする必要がある場合は、ファイルを削除することで変更を簡単に元に戻すことができます。これらの手順により、モジュールが自動的にロードされるのを防ぎながら、モジュールをシステムに残すことができます。