Es kann vorkommen, dass Sie das Laden einiger Kernel-Module während der Startzeit Ihres Linux-Systems deaktivieren müssen. In diesem Handbuch werden wir einige verschiedene Möglichkeiten besprechen, 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 der Startzeit effektiv dauerhaft deaktiviert.
In diesem Tutorial lernen Sie:
- Wie man ein Kernelmodul auf Ubuntu/Debian-basierten Linux-Distributionen auf die schwarze Liste setzt
Ein Kernel-Modul unter Ubuntu Linux auf die schwarze Liste setzen
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | Debian-basierte Distributionen |
Software | Nicht zutreffend |
Andere | Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl. |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
Blacklist-Modul wird nicht geladen
Befolgen Sie die nachstehenden Schritte, um zu erfahren, wie Sie ein Kernel-Modul vom Laden auf Ihr System auf die schwarze Liste setzen können.
- Beginnen wir mit der Auflistung aller derzeit von Ihrem Linux-System geladenen Module:
$ 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
lsmod
listet alle aktuell geladenen Kernel-Module auf. Das obigelsmod
Ausgabe wurde gekürzt. - Nehmen wir an, wir werden den
usbcore
auf die schwarze Liste setzen Modul. 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
- Aus der obigen Ausgabe können wir sehen, dass
usb-common
Modul hängt vonusbcore
ab . Um ein Modul ohne Abhängigkeiten auf die schwarze Liste zu setzen, erstellen wir eine/etc/modprobe.d/blacklist.conf
(falls noch nicht vorhanden) Datei und fügen Sie ihr die folgende Zeile hinzu:blacklist usbcore
- Sobald Sie fertig sind, aktualisieren Sie initramfs und starten Sie Ihr System neu:
# update-initramfs -u # reboot
Verwenden Sie nach dem Neustart lsmod
um zu sehen, 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, trotzdem geladen würde. Glücklicherweise gibt es einen Trick, um alle Module einschließlich ihrer Abhängigkeiten auf die schwarze Liste zu setzen.
Wenn Sie aus irgendeinem Grund nicht in der Lage sind, Module und alle ihre Abhängigkeiten auf die schwarze Liste zu setzen, sorgen Sie dafür, dass das Modul nicht geladen werden kann, und sorgen Sie so dafür, dass alle abhängigen Module nicht geladen werden. Fügen Sie die folgende Zeile zu Ihrer /etc/modprobe.d/blacklist.conf
hinzu um usbcore
vollständig auf die schwarze Liste zu setzen einschließlich aller seiner abhängigen Module:
install usbcore /bin/true
Aktualisieren Sie dann initramfs und starten Sie neu:
# update-initramfs -u
Der Vollständigkeit halber beachten Sie bitte, dass es sich bewährt hat, für jedes Modul auf der schwarzen Liste eine separate Modulkonfigurationsdatei zu erstellen. Zum Beispiel, wenn Sie das Modul e1000
auf die schwarze Liste setzen möchten , erstellen Sie dann eine separate /etc/modprobe.d/e1000.conf
Datei.
Abschlussgedanken
In diesem Handbuch 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 kann einfach rückgängig gemacht werden, indem Sie die Datei löschen, wenn Sie das erneute Laden des Moduls zulassen müssen. Diese Anweisungen ermöglichen, dass das Modul auf Ihrem System verbleibt, während es lediglich verhindert, dass es automatisch geladen wird.