Potrebbe esserci un momento in cui è necessario disabilitare il caricamento di alcuni moduli del kernel durante il tempo di avvio del sistema Linux. In questa guida, discuteremo alcuni modi diversi per inserire nella blacklist un modulo, comprese le sue dipendenze, su Ubuntu e qualsiasi altra distribuzione basata su Debian. Ciò disabiliterà effettivamente in modo permanente il caricamento di un modulo durante il tempo di avvio.
In questo tutorial imparerai:
- Come inserire nella blacklist un modulo del kernel su distribuzioni Linux basate su Ubuntu/Debian
Inserimento nella blacklist di un modulo del kernel su Ubuntu Linux
Categoria | Requisiti, convenzioni o versione del software utilizzata |
---|---|
Sistema | Distribuzioni basate su Debian |
Software | N/D |
Altro | Accesso privilegiato al tuo sistema Linux come root o tramite sudo comando. |
Convenzioni | # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo comando$ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato |
Modulo blacklist in fase di caricamento
Segui i passaggi seguenti per vedere come inserire nella lista nera un modulo del kernel dal caricamento sul tuo sistema.
- Iniziamo elencando tutti i moduli attualmente caricati dal tuo sistema 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 ....
Il
lsmod
comando elenca tutti i moduli del kernel attualmente caricati. Quanto sopralsmod
l'output è stato ridotto. - Diciamo di inserire nella blacklist
usbcore
modulo. Prima di scaricare o inserire nella blacklist qualsiasi modulo è bene vedere quali altri moduli dipendono da esso:$ modinfo -F depends usbcore usb-common
- Dall'output di cui sopra possiamo vedere che il
usb-common
il modulo dipende dausbcore
. Per inserire nella blacklist un modulo senza dipendenze, creeremo un/etc/modprobe.d/blacklist.conf
(se non esiste già) e aggiungi la seguente riga:blacklist usbcore
- Al termine, aggiorna initramfs e riavvia il sistema:
# update-initramfs -u # reboot
Dopo il riavvio, usa lsmod
per vedere se il modulo è attualmente caricato. Nel caso in cui altri moduli dipendano dal modulo che stai tentando di inserire nella blacklist, come nell'esempio sopra, dovrai inserire nella blacklist tutti i moduli dipendenti, altrimenti il modulo iniziale che hai inserito nella blacklist verrebbe comunque caricato. Fortunatamente, c'è un trucco per inserire nella blacklist tutti i moduli, comprese le loro dipendenze.
Se, per qualsiasi motivo, non sei in grado di inserire nella blacklist i moduli e tutte le sue dipendenze, fai in modo che il modulo non venga caricato e quindi impedisca anche il caricamento di tutti i moduli dipendenti. Aggiungi la seguente riga al tuo /etc/modprobe.d/blacklist.conf
per inserire completamente nella blacklist usbcore
compresi tutti i suoi moduli dipendenti:
install usbcore /bin/true
Quindi, aggiorna initramfs e riavvia:
# update-initramfs -u
Per completezza, tieni presente che è buona norma creare un file di configurazione del modulo separato per ogni modulo nella lista nera. Ad esempio, se desideri inserire nella blacklist il modulo e1000
, quindi crea un /etc/modprobe.d/e1000.conf
separato file.
Pensieri conclusivi
In questa guida, abbiamo visto come inserire nella blacklist un modulo del kernel in Ubuntu e altri sistemi Linux basati su Debian. Ciò è utile quando è necessario impedire il caricamento di un modulo, temporaneamente o permanentemente, all'avvio. La modifica è semplice da ripristinare eliminando il file se è necessario consentire il caricamento del modulo ancora una volta. Queste istruzioni consentono al modulo di rimanere sul tuo sistema, impedendo semplicemente che venga caricato automaticamente.