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.
-
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
lsmodlistet alle aktuell geladenen Kernel-Module auf. Die obigelsmod-Ausgabewurde gekürzt. Nehmen wir an, wir werden das
usbcore-Modulauf 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-commonAus der obigen Ausgabe können wir sehen, dass das
usb-common-Modulvonusbcoreabhä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 usbcoreWenn 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.
