Omitir el módulo del kernel en el arranque


Respuestas:


1

La lista negra del módulo como se menciona en la respuesta anterior es la mejor manera de evitar por completo un módulo del núcleo. Además de las listas negras, no hay una forma genérica de deshabilitar un módulo.

Algunas distribuciones de Linux proporcionan parámetros de arranque del kernel para hacer cosas como esta.

  • En Arch Linux , load_modules=offobliga a udev a omitir la carga automática. Esto le permitiría iniciar sin cargar módulos, incluir en la lista negra un módulo que está causando problemas y reiniciar normalmente sin cargar el módulo con problemas.
  • Knoppix tiene una larga lista de parámetros de arranque adicionales (también conocidos como "códigos de trucos") ; Estos son una mezcla de parámetros normales de arranque del núcleo y extras específicos de Knoppix.

Para obtener más información, consulte la documentación de Parámetros del kernel . Hay parámetros para deshabilitar subsistemas específicos. Por ejemplo:

  • nousb deshabilita el soporte USB del kernel
  • cgroup_disable=[name]deshabilita un controlador particular; sin embargo, "memoria" es el único ejemplo específicamente soportado
  • libata.noacpidesactiva el uso de ACPI en libata (controladores SATA); Este es un ejemplo de pasar un parámetro de módulo a través del núcleo

7

Es posible deshabilitar módulos específicos desde el gestor de arranque, pero parece que depende de la distribución.

Por un lado, la documentación de Linux Kernel Parameters establece, a partir de agosto de 2016:

module_blacklist= [KNL] No cargue una lista de módulos separados por comas. Útil para depurar módulos problemáticos.

Por otro lado, la opción que funcionó para mí con openSUSE 42.1 (Linux 4.1.31) se describe en la  wiki de módulos Arch Kernel :

También puede incluir en la lista negra los módulos del gestor de arranque. Simplemente agregue

modprobe.blacklist=modname1,modname2,modname3

a la línea del kernel de su gestor de arranque, como se describe en los parámetros del kernel. Cuando esté en la lista negra de más de un módulo, tenga en cuenta que están separados solo por comas. Es probable que los espacios o cualquier otra cosa rompan la sintaxis.

(Gracias a @gertvdijk en  unix.SE por señalar esto).

También vale la pena mencionar es el siguiente método :

Para evitar que el núcleo cargue ciertos módulos utilizando la línea de comando grub, debe pasarlos como parámetro a la línea del núcleo utilizando la sintaxis siguiente.

$module_name.blacklist=yes

No tengo idea de dónde sacaron eso, pero definitivamente no estaría de más probar cualquier otro método si todo lo demás falla.


Tengo la misma pregunta sobre por qué funciona "$ module_name.blacklist = yes", y creo que está relacionado con esta parte del código del kernel: git.kernel.org/pub/scm/linux/kernel/git/stable/linux- stable.git / ...
Johnlcf

1

Debería poder agregarlo a /etc/modprobe.d/blacklist, o la lista negra 'modulename'


esto funcionará, pero requiere el inicio desde otro kernel (si está disponible) o un sistema LiveCD.
quack quijote
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.