3.11. Impedir que os módulos do núcleo sejam carregados automaticamente no momento da inicialização do sistema
O procedimento seguinte descreve como adicionar um módulo de kernel a um denilista para que ele não seja carregado automaticamente durante o processo de inicialização.
Pré-requisitos
- Permissões de raiz
-
O pacote
kmodestá instalado. - Certifique-se de que um módulo do núcleo em um denilista não seja vital para a configuração atual de seu sistema.
Procedimento
Selecione um módulo do núcleo que você deseja colocar em um denilista:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow O comando
lsmodexibe uma lista de módulos carregados para o kernel atualmente em execução.Alternativamente, identifique um módulo de kernel descarregado que você deseja evitar de carregar potencialmente.
Todos os módulos do kernel estão localizados no diretório
/lib/modules/<KERNEL_VERSION>/kernel/<SUBSYSTEM>/.
Criar um arquivo de configuração para um denilista:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow O exemplo mostra o conteúdo do arquivo
blacklist.conf, editado pelo editorvim. A linhablacklistgarante que o módulo do kernel relevante não será carregado automaticamente durante o processo de inicialização. O comandoblacklist, entretanto, não impede que o módulo seja carregado como uma dependência para outro módulo do kernel que não esteja em um denylist. Portanto, a linhainstallfaz com que o/bin/falseseja executado ao invés de instalar um módulo.As linhas que começam com um sinal de hash são comentários para tornar o arquivo mais legível.
NotaAo inserir o nome de um módulo de kernel, não anexe a extensão
.ko.xzao final do nome. Os nomes dos módulos do kernel não têm extensões; seus arquivos correspondentes têm.Criar uma cópia de segurança da imagem inicial do ramdisk atual antes de reconstruir:
cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).bak.$(date %m-\r%H%M%S).img
# cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).bak.$(date %m-\r%H%M%S).imgCopy to Clipboard Copied! Toggle word wrap Toggle overflow O comando acima cria uma imagem de backup
initramfscaso a nova versão tenha um problema inesperado.Alternativamente, crie uma cópia de segurança de outra imagem ramdisk inicial que corresponda à versão do kernel para a qual você deseja colocar os módulos do kernel em um denylist:
cp /boot/initramfs-<SOME_VERSION>.img /boot/initramfs-<SOME_VERSION>.img.bak.$(date %m-\r%H%M%S)
# cp /boot/initramfs-<SOME_VERSION>.img /boot/initramfs-<SOME_VERSION>.img.bak.$(date %m-\r%H%M%S)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Gerar uma nova imagem ramdisk inicial para refletir as mudanças:
dracut -f -v
# dracut -f -vCopy to Clipboard Copied! Toggle word wrap Toggle overflow Se você estiver construindo uma imagem ramdisk inicial para uma versão do kernel diferente da que você está inicializando atualmente, especifique tanto a versão alvo
initramfsquanto a versão do kernel:dracut -f -v /boot/initramfs-<TARGET_VERSION>.img <CORRESPONDING_TARGET_KERNEL_VERSION>
# dracut -f -v /boot/initramfs-<TARGET_VERSION>.img <CORRESPONDING_TARGET_KERNEL_VERSION>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Reinicie o sistema:
reboot
$ rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow
As mudanças descritas neste procedimento will take effect and persist após reiniciar o sistema. Se você colocar inadequadamente um módulo chave do núcleo em um denylist, você pode enfrentar um sistema instável ou não operacional.
Recursos adicionais
-
Para mais detalhes sobre a utilidade
dracut, consulte a página do manualdracut(8).