Bloccare il caricamento di moduli del kernel Linux

Disabilitare il caricamento automatico dei moduli di driver del kernel Linux. Notare che questa procedura non impedisce che un altro processo richieda l'aggiunta di un modulo all'avvio o quando la macchina è in esecuzione.

Avvertimenti:

  1. Come detto nel commento nell'intestazione di /etc/modprobe.d/blacklist.conf, inserire moduli lì «...non ha effetto sul caricamento automatico dei moduli da parte del kernel Linux»; ciò significa che per inserire un driver del kernel, come ipv6 in una lista nera è necessario fare una falsa installazione.

  2. Rimuovere o spostare /etc/modprobe.conf, se è presente, dato che sovrascrive qualsiasi comportamento definito in /etc/modprobe.d/* (a meno che non si aggiunga include /etc/modprobe.d).

  3. I moduli elencati in /etc/initramfs-tools/modules non sono soggetti a liste nere, quindi prima commentarli.

Come fare:

  1. Creare un file "/etc/modprobe.d/<nome_modulo>.conf" contenente "blacklist <nome_modulo>".

  2. Eseguire "depmod -ae" come root

  3. Ricreare il proprio initrd con "update-initramfs -u"

Esempi:

root@host:/etc/modprobe.d# ls -altr
total 72
-rw-r--r--  1 root root   363 Sep 24 19:57 pnp-hotplug
-rw-r--r--  1 root root   284 Sep 24 19:57 display_class
drwxr-xr-x  2 root root    16 Oct 28 21:38 arch
lrwxrwxrwx  1 root root     9 Oct 28 21:38 arch-aliases -> arch/i386
-rw-r--r--  1 root root  1405 Oct 29 09:46 blacklist.conf
-rw-r--r--  1 root root    18 Oct 29 13:34 eth1394.conf
-rw-r--r--  1 root root    15 Oct 29 14:49 irda.conf
-rw-r--r--  1 root root    20 Oct 29 16:10 irtty_sir.conf
-rw-r--r--  1 root root    18 Oct 29 16:10 sir_dev.conf
-rw-r--r--  1 root root    19 Oct 29 16:10 nsc_ircc.conf
-rw-r--r--  1 root root  4360 Oct 29 16:21 aliases
drwxr-xr-x  3 root root  4096 Oct 29 16:24 .
-rw-r--r--  1 root root    15 Oct 29 16:24 ipv6.conf
drwxr-xr-x 47 root root 12288 Oct 29 16:25 ..
root@host:/etc/modprobe.d# cat eth1394.conf irda.conf irtty_sir.conf sir_dev.conf nsc_ircc.conf ipv6.conf
blacklist eth1394
blacklist irda
blacklist irtty_sir
blacklist sir_dev
blacklist nsc_ircc
blacklist ipv6

Addendum: a volte è necessario disabilitare più moduli per disabilitare quello desiderato: irda è un esempio di questo tipo. Nell'esempio precedente, è stato necessario disabilitare irtty_sir, sir_dev e nsc_ircc per poter disabilitare irda. Se si sospetta di trovarsi in una situazione simile, eseguire lsmod e trovare i moduli che stanno usando quello che si desidera disabilitare.

Grazie a xingu e liable in irc #debian.

Inserimento in lista nera con una falsa installazione

Come esempio, diciamo che si desidera disabilitare nomemodulo usando una falsa installazione. Si deve:

  1. Creare un file chiamato '/etc/modprobe.d/<nomemodulo>.conf' contenente 'install <nomemodulo> /bin/true'.

  2. Riavviare.

Questa procedura previene il caricamento del modulo nomemodulo all'avvio.


E grazie a ?BrendaButler per il suggerimento - Le liste nere per i moduli non dovrebbero essere spostate su un'altra pagina? Non fanno parte di udev.


FixMe: usare "inclusive terminology" - vedere questo messaggio nella mailing list del kernel Linux

CategoryKernel CategorySystemAdministration