Il peut arriver que vous ayez besoin de désactiver le chargement de certains modules du noyau pendant le démarrage de votre système Linux. Dans ce guide, nous discuterons de différentes manières de mettre un module sur liste noire, y compris ses dépendances, sur Ubuntu et toute autre distribution basée sur Debian. Cela désactivera de manière permanente le chargement d'un module pendant le démarrage.
Dans ce didacticiel, vous apprendrez :
- Comment mettre en liste noire un module du noyau sur les distributions Linux basées sur Ubuntu/Debian
Mise en liste noire d'un module du noyau sur Ubuntu Linux
Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | Distributions basées sur Debian |
Logiciel | N/A |
Autre | Accès privilégié à votre système Linux en tant que root ou via le sudo commande. |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Module de liste noire à partir du chargement
Suivez les étapes ci-dessous pour voir comment bloquer le chargement d'un module du noyau sur votre système.
- Commençons par lister tous les modules actuellement chargés par votre système 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 ....
Le
lsmod
La commande répertorie tous les modules du noyau actuellement chargés. Lelsmod
ci-dessus la sortie a été raccourcie. - Disons que nous allons mettre en liste noire le
usbcore
module. Avant de décharger ou de mettre sur liste noire un module, il est bon de voir quels autres modules en dépendent :$ modinfo -F depends usbcore usb-common
- D'après la sortie ci-dessus, nous pouvons voir que le
usb-common
le module dépend deusbcore
. Pour blacklister un module sans dépendances, nous allons créer un/etc/modprobe.d/blacklist.conf
(s'il n'existe pas déjà) et ajoutez-y la ligne suivante :blacklist usbcore
- Une fois terminé, mettez à jour initramfs et redémarrez votre système :
# update-initramfs -u # reboot
Après le redémarrage, utilisez lsmod
pour voir si le module est actuellement chargé. Dans le cas où d'autres modules dépendent du module que vous essayez de mettre sur liste noire, comme dans l'exemple ci-dessus, vous devrez mettre sur liste noire tous les modules dépendants, sinon le module initial que vous avez mis sur liste noire se chargerait de toute façon. Heureusement, il existe une astuce pour mettre sur liste noire tous les modules y compris leurs dépendances.
Si, pour une raison quelconque, vous ne parvenez pas à mettre sur liste noire les modules et toutes leurs dépendances, faites échouer le chargement du module et empêchez ainsi tous les modules dépendants de se charger. Ajoutez la ligne suivante à votre /etc/modprobe.d/blacklist.conf
pour mettre complètement sur liste noire usbcore
y compris tous ses modules dépendants :
install usbcore /bin/true
Ensuite, mettez à jour initramfs et redémarrez :
# update-initramfs -u
Pour être complet, veuillez noter qu'il est recommandé de créer un fichier de configuration de module séparé pour chaque module sur liste noire. Par exemple si vous souhaitez blacklister le module e1000
, puis créez un /etc/modprobe.d/e1000.conf
séparé fichier.
Réflexions finales
Dans ce guide, nous avons vu comment mettre sur liste noire un module du noyau dans Ubuntu et d'autres systèmes Linux basés sur Debian. Ceci est utile lorsque vous devez empêcher le chargement d'un module, temporairement ou définitivement, au démarrage. Le changement est simple à annuler en supprimant le fichier si vous devez autoriser le module à se charger une fois de plus. Ces instructions permettent au module de rester sur votre système, tout en l'empêchant d'être chargé automatiquement.