Há um módulo do kernel quebrado, devido ao qual nem consigo carregar o sistema operacional, portanto não posso excluí-lo ou corrigi-lo. É possível pular este módulo na inicialização, usando os parâmetros do kernel ou algo assim?
Há um módulo do kernel quebrado, devido ao qual nem consigo carregar o sistema operacional, portanto não posso excluí-lo ou corrigi-lo. É possível pular este módulo na inicialização, usando os parâmetros do kernel ou algo assim?
Respostas:
A lista negra do módulo, conforme mencionado na resposta anterior, é a melhor maneira de evitar completamente um módulo do kernel. Além da lista negra, não há maneira genérica de desativar um módulo.
Algumas distribuições Linux fornecem parâmetros de inicialização do kernel para fazer coisas como esta.
load_modules=off
força o udev a ignorar o carregamento automático. Isso permitiria que você inicialize sem carregar módulos, coloque na lista negra um módulo que está causando problemas e reinicie normalmente sem o carregamento problemático do módulo.Para mais informações, consulte a documentação de Parâmetros do Kernel . Existem parâmetros para desativar subsistemas específicos. Por exemplo:
nousb
desativa o suporte USB do kernelcgroup_disable=[name]
desativa um determinado controlador; no entanto, "memória" é o único exemplo especificamente suportadolibata.noacpi
desativa o uso de ACPI em libata (controladores SATA); este é um exemplo de passagem de um parâmetro de módulo através do kernelA desativação de módulos específicos é possível no carregador de inicialização, mas parece realmente dependente de distribuição.
Por um lado, as documentações dos Kernel Parameters do Linux afirmam, em agosto de 2016:
module_blacklist=
[KNL] Não carregue uma lista de módulos separados por vírgula. Útil para depurar módulos problemáticos.
Por outro lado, a opção que funcionou para mim com o openSUSE 42.1 (Linux 4.1.31) está descrita no wiki dos módulos do Arch Kernel :
Você também pode colocar os módulos na lista negra do gerenciador de inicialização. Basta adicionar
modprobe.blacklist=modname1,modname2,modname3
à linha do kernel do seu carregador de inicialização, conforme descrito em Parâmetros do kernel. Quando você estiver na lista negra de mais de um módulo, observe que eles são separados apenas por vírgulas. Espaços ou qualquer outra coisa presumivelmente pode quebrar a sintaxe.
(Obrigado a @gertvdijk no unix.SE por apontar isso.)
Também vale a pena mencionar o seguinte método :
Para impedir que determinados módulos sejam carregados pelo kernel usando a linha de comando grub, você precisa passá-los como um parâmetro para a linha do kernel usando a sintaxe abaixo.
$module_name.blacklist=yes
Eu não tenho idéia de onde eles tiraram isso, mas definitivamente não fará mal tentar outro método, se tudo mais falhar.
Você deve poder adicioná-lo ao /etc/modprobe.d/blacklist ou à lista negra 'modulename'