Pule o módulo do kernel na inicialização

8

Há um módulo do kernel quebrado, devido ao qual eu não consigo nem carregar o sistema operacional, então eu não posso excluir ou consertá-lo. É possível pular este módulo na inicialização, usando os parâmetros do kernel ou algo do tipo?

    
por Gris 17.06.2010 / 18:41

3 respostas

1

Colocar o módulo na lista negra como mencionado na resposta anterior é a melhor maneira de evitar completamente um módulo do kernel. Além da lista negra, não há uma maneira genérica de desativar um módulo.

Algumas distribuições Linux fornecem parâmetros de inicialização do kernel para fazer coisas assim.

  • No Arch Linux , load_modules=off força o udev a ignorar o carregamento automático. Isso permitiria que você inicializasse sem carregar os módulos, fizesse uma lista negra de um módulo que está causando problemas e reinicie normalmente sem o carregamento do módulo com problemas.
  • O Knoppix tem uma longa lista de parâmetros extras de inicialização (também conhecidos como "cheatcodes") ; estes são uma mistura de parâmetros normais de inicialização do kernel e extras específicos do Knoppix.

Para mais informações, consulte a documentação dos parâmetros do kernel . Existem parâmetros para desativar subsistemas específicos. Por exemplo:

  • nousb desativa o suporte a kernel USB
  • cgroup_disable=[name] desativa um determinado controlador; no entanto, "memória" é o único exemplo especificamente suportado
  • libata.noacpi desativa o uso de ACPI na libata (controladores SATA); este é um exemplo de passar um parâmetro do módulo através do kernel
por 17.06.2010 / 20:32
5

Desativar módulos específicos é possível a partir do gerenciador de inicialização, mas parece dependente de distro, de fato.

Por um lado, as documentações dos Parâmetros do kernel do Linux , em agosto de 2016:

module_blacklist= [KNL] Do not load a comma-separated list of modules. Useful for debugging problem modules.

Por outro lado, a opção que funcionou para mim com o openSUSE 42.1 (Linux 4.1.31) é descrita em Módulos Arch Kernel wiki:

You can also blacklist modules from the bootloader. Simply add

modprobe.blacklist=modname1,modname2,modname3

to your bootloader's kernel line, as described in Kernel parameters. When you are blacklisting more than one module, note that they are separated by commas only. Spaces or anything else might presumably break the syntax.

(Agradecemos a @gertvdijk do unix.SE por apontar isso.)

Também vale a pena mencionar o o seguinte método :

In order the prevent certain modules from being loaded by the kernel using the grub command line you need to pass them as a parameter to the kernel line using the below syntax.

$module_name.blacklist=yes

Eu não tenho idéia de onde eles conseguiram isso, mas definitivamente não vai doer tentar qualquer outro método se tudo mais falhar.

    
por 12.10.2016 / 10:59
1

Você deve poder adicioná-lo a /etc/modprobe.d/blacklist ou à lista negra 'modulename'

    
por 17.06.2010 / 18:48