Website-Suche

Wie man ein Modul unter Ubuntu/Debian Linux auf die Blacklist setzt


Es kann vorkommen, dass Sie das Laden einiger Kernel-Module während des Bootvorgangs Ihres Linux-Systems deaktivieren müssen. In dieser Anleitung werden wir einige verschiedene Möglichkeiten diskutieren, ein Modul, einschließlich seiner Abhängigkeiten, auf Ubuntu und anderen Debian-basierten Distributionen auf die schwarze Liste zu setzen. Dadurch wird das Laden eines Moduls während des Bootvorgangs dauerhaft deaktiviert.

In diesem Tutorial lernen Sie:

  • Wie man ein Kernel-Modul auf Ubuntu/Debian-basierten Linux-Distributionen auf die Blacklist setzt

Blacklisting eines Kernel-Moduls unter Ubuntu Linux

Blacklist-Modul vor dem Laden

Führen Sie die folgenden Schritte aus, um zu sehen, wie Sie ein Kernel-Modul für das Laden auf Ihrem System auf die Blacklist setzen können.

  1. Beginnen wir mit der Auflistung aller Module, die derzeit von Ihrem Linux-System geladen werden:

    
    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
    ....
    

    Der Befehl lsmod listet alle aktuell geladenen Kernel-Module auf. Die obige lsmod-Ausgabe wurde gekürzt.

  2. Nehmen wir an, wir werden das usbcore-Modul auf die schwarze Liste setzen. Bevor Sie ein Modul entladen oder auf die schwarze Liste setzen, ist es gut zu sehen, welche anderen Module davon abhängen:

    
    modinfo -F depends usbcore
    usb-common
    
  3. Aus der obigen Ausgabe können wir sehen, dass das usb-common-Modul von usbcore abhängt. Um ein Modul ohne Abhängigkeiten auf die Blacklist zu setzen, erstellen wir eine Datei /etc/modprobe.d/blacklist.conf (falls sie noch nicht existiert) und fügen die folgende Zeile hinzu:

    
    blacklist usbcore
    
  4. Wenn Sie fertig sind, aktualisieren Sie initramfs und starten Sie Ihr System neu:

    
    update-initramfs -u
    reboot
    

Verwenden Sie nach dem Neustart lsmod, um zu überprüfen, ob das Modul derzeit geladen ist. Falls andere Module von dem Modul abhängig sind, das Sie auf die schwarze Liste setzen möchten, wie im obigen Beispiel, müssen Sie alle abhängigen Module auf die schwarze Liste setzen, da sonst das ursprüngliche Modul, das Sie auf die schwarze Liste gesetzt haben, sowieso geladen wird. Glücklicherweise gibt es einen Trick, um alle Module inklusive ihrer Abhängigkeiten auf die Blacklist zu setzen.

Wenn Sie aus irgendeinem Grund nicht in der Lage sind, Module und alle ihre Abhängigkeiten auf die Blacklist zu setzen, führen Sie dazu, dass das Modul nicht geladen werden kann, und veranlassen Sie somit auch, dass alle abhängigen Module nicht geladen werden können. Fügen Sie die folgende Zeile zu Ihrer /etc/modprobe.d/blacklist.conf hinzu, um usbcore einschließlich aller abhängigen Module vollständig auf die Blacklist zu setzen:


install usbcore /bin/true

Aktualisieren Sie dann initramfs und starten Sie neu:


update-initramfs -u

Der Vollständigkeit halber beachten Sie bitte, dass es eine gute Vorgehensweise ist, für jedes Modul auf der Blacklist eine separate Modulkonfigurationsdatei zu erstellen. Wenn Sie z.B. das Modul e1000 auf die schwarze Liste setzen möchten, erstellen Sie eine separate Datei /etc/modprobe.d/e1000.conf.

Abschließende Gedanken

In dieser Anleitung haben wir gesehen, wie man ein Kernel-Modul in Ubuntu und anderen Debian-basierten Linux-Systemen auf die schwarze Liste setzt. Dies ist hilfreich, wenn Sie verhindern müssen, dass ein Modul beim Booten vorübergehend oder dauerhaft geladen wird. Die Änderung lässt sich einfach rückgängig machen, indem Sie die Datei löschen, wenn Sie das erneute Laden des Moduls zulassen müssen. Diese Anweisungen ermöglichen es, dass das Modul auf Ihrem System verbleibt, während es nur verhindert wird, dass es automatisch geladen wird.

Verwandte Artikel: