Puede haber un momento en el que necesite deshabilitar la carga de algunos módulos del kernel durante el tiempo de arranque de su sistema Linux. En esta guía, discutiremos algunas formas diferentes de incluir en la lista negra un módulo, incluidas sus dependencias, en Ubuntu y cualquier otra distribución basada en Debian. Esto deshabilitará permanentemente la carga de un módulo durante el tiempo de arranque.
En este tutorial aprenderás:
- Cómo incluir en la lista negra un módulo del kernel en distribuciones de Linux basadas en Ubuntu/Debian
Lista negra de un módulo del kernel en Ubuntu Linux
Requisitos de software y convenciones de la línea de comandos de Linux Categoría | Requisitos, convenciones o versión de software utilizada |
Sistema | distribuciones basadas en Debian |
Software | N/A |
Otro | Acceso privilegiado a su sistema Linux como root o a través de sudo comando. |
Convenciones | # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios |
Módulo de lista negra desde la carga
Siga los pasos a continuación para ver cómo incluir en la lista negra un módulo del kernel para que no se cargue en su sistema.
- Empecemos enumerando todos los módulos actualmente cargados por su 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
....
El lsmod
El comando enumera todos los módulos del kernel cargados actualmente. El lsmod
anterior la salida se ha acortado.
- Digamos que vamos a incluir en la lista negra el
usbcore
módulo. Antes de descargar o incluir en la lista negra cualquier módulo, es bueno ver qué otros módulos dependen de él:
$ modinfo -F depends usbcore
usb-common
- De la salida anterior podemos ver que el
usb-common
módulo depende de usbcore
. Para incluir en la lista negra un módulo sin dependencias, crearemos un /etc/modprobe.d/blacklist.conf
(si aún no existe) y agréguele la siguiente línea:
blacklist usbcore
- Una vez hecho esto, actualice initramfs y reinicie su sistema:
# update-initramfs -u
# reboot
Después de reiniciar, use lsmod
para ver si el módulo está actualmente cargado. En caso de que otros módulos dependan del módulo que está tratando de incluir en la lista negra, como en el ejemplo anterior, deberá incluir en la lista negra todos los módulos dependientes; de lo contrario, el módulo inicial que ha incluido en la lista negra se cargaría de todos modos. Afortunadamente, existe un truco para incluir en la lista negra todos los módulos, incluidas sus dependencias.
Si, por alguna razón, no puede poner en la lista negra los módulos y todas sus dependencias, haga que el módulo no se cargue y, por lo tanto, también provoque que todos los módulos dependientes no se carguen. Agregue la siguiente línea a su /etc/modprobe.d/blacklist.conf
poner en la lista negra completamente usbcore
incluyendo todos sus módulos dependientes:
install usbcore /bin/true
Luego, actualice initramfs y reinicie:
# update-initramfs -u
Solo para estar completo, tenga en cuenta que es una buena práctica crear un archivo de configuración de módulo separado para cada módulo en la lista negra. Por ejemplo, si desea incluir en la lista negra el módulo e1000
, luego cree un /etc/modprobe.d/e1000.conf
separado archivo.
Pensamientos finales
En esta guía, vimos cómo incluir en la lista negra un módulo del kernel en Ubuntu y otros sistemas Linux basados en Debian. Esto es útil cuando necesita evitar que un módulo se cargue, ya sea de forma temporal o permanente, en el momento del arranque. El cambio es simple de revertir eliminando el archivo si necesita permitir que el módulo se cargue una vez más. Estas instrucciones permiten que el módulo permanezca en su sistema, mientras evitan que se cargue automáticamente.