Como faço para descobrir por que o serviço systemctl "systemd-modules-load" falha?

27

Por algum tempo, vi algum texto em vermelho piscando durante a inicialização. Hoje eu decidi investigar. O serviço systemctl systemd-modules-load.serviceestá falhando com este texto:

tomas @ bonus-debian: ~ $ status do sudo systemctl systemd-modules-load
● systemd-modules-load.service - Carregar módulos do kernel
   Carregado: carregado (/lib/systemd/system/systemd-modules-load.service; estático; predefinição de fornecedor: ativada)
   Ativo: falhou (resultado: código de saída) desde ma. 2015-11-09 02:58:48 CET; 5min atrás
     Documentos: man: systemd-modules-load.service (8)
           man: modules-load.d (5)
  Processo: 644 ExecStart = / lib / systemd / systemd-modules-load (código = encerrado, status = 1 / FAILURE)
 PID principal: 644 (código = encerrado, status = 1 / FAILURE)

nov. 09 02:58:48 bonus-debian systemd [1]: Iniciando o carregamento de módulos do kernel ...
nov. 09 02:58:48 bonus-debian systemd-modules-load [644]: falha ao encontrar o módulo '-r usbhid'
nov. 09 02:58:48 bonus-debian systemd [1]: systemd-modules-load.service: Processo principal encerrado, código = encerrado, status = 1 / FAILURE
nov. 09 02:58:48 bonus-debian systemd [1]: Falha ao iniciar o Load Kernel Modules.
nov. 09 02:58:48 bonus-debian systemd [1]: systemd-modules-load.service: A unidade entrou em estado de falha.
nov. 09 02:58:48 bonus-debian systemd [1]: systemd-modules-load.service: Falha no resultado 'código de saída'.

Eu pensei em começar pesquisando no Google:

Captura de tela

Ai.

Meu sistema não parece se importar com a falha no carregamento do driver, pois não notei uma experiência degradada, mas ainda assim eu gostaria de corrigi-lo.

Como o Google não me levou a lugar algum, eu já estou preso. Não faço ideia por onde começar a procurar.

Como faço para descobrir por que o serviço systemctl "systemd-modules-load" falha?

Hubro
fonte
Você mudou a udevregra, por acaso?
MariusMatutiae
Você pode verificar os logs no journalctl? Ele está tentando carregar um módulo chamado "-r usbhid"?
cristi

Respostas:

40

Eu também tive esse problema. Consegui resolvê-lo seguindo as instruções na página wiki do Arch Linux systemd . Aqui está um resumo do que eu fiz:

  1. Vamos encontrar os serviços systemd que falham ao iniciar

    $ systemctl --failed  
    ------------------------------------------------------------------------
    systemd-modules-load.service   loaded failed failed  Load Kernel Modules
    
  2. Ok, encontramos um problema com o serviço systemd-modules-load. Queremos saber mais.

    $ systemctl status systemd-modules-load  
    ------------------------------------------------------------------------
    systemd-modules-load.service - Load Kernel Modules      
       Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)     
       Active: failed (Result: exit-code) since So 2013-08-25 11:48:13 CEST; 32s ago  
         Docs: man:systemd-modules-load.service(8).  
               man:modules-load.d(5)
      Process: 15630 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=1/FAILURE)
    

    Se o ID do processo não estiver listado, basta reiniciar o serviço com falha com

    $ systemctl restart systemd-modules-load
    
  3. Agora, temos o ID do processo (PID) para investigar esse erro em profundidade. Digite o seguinte comando com o ID do processo atual (aqui: 15630):

    $ journalctl _PID=15630
    ----------------------------------------------------------------------
    -- Logs begin at Sa 2013-05-25 10:31:12 CEST, end at So 2013-08-25 11:51:17 CEST. --
    Aug 25 11:48:13 mypc systemd-modules-load[15630]: Failed to find module 'blacklist usblp'
    Aug 25 11:48:13 mypc systemd-modules-load[15630]: Failed to find module 'install usblp /bin/false'
    
  4. Vimos que algumas das configurações do módulo do kernel têm configurações incorretas. Portanto, vimos essas configurações em /etc/modules-load.d/

    $ ls -Al /etc/modules-load.d/
    ----------------------------------------------------------------------
    ...  
    -rw-r--r--   1 root root    79  1. Dez 2012  blacklist.conf  
    -rw-r--r--   1 root root     1  2. Mär 14:30 encrypt.conf  
    -rw-r--r--   1 root root     3  5. Dez 2012  printing.conf  
    -rw-r--r--   1 root root     6 14. Jul 11:01 realtek.conf  
    -rw-r--r--   1 root root    65  2. Jun 23:01 virtualbox.conf  
    ...  
    
  5. A mensagem de erro Falha ao encontrar o módulo 'lista negra usblp' pode estar relacionada a uma configuração incorreta dentro do blacklist.conf. Vamos desativá-lo inserindo um número à direita antes de cada opção encontrada na etapa 3:

    /etc/modules-load.d/blacklist.conf  
    ----------------------------------------------------------------------
    # blacklist usblp  
    # install usblp /bin/false  
    
  6. Agora, tente iniciar systemd-modules-load:

    $ systemctl restart systemd-modules-load  
    

    Se foi bem-sucedido, isso não deve levar nada. Se houver algum erro, volte para a etapa 3 e use o novo PID para solucionar os erros restantes.

    Se estiver tudo bem, você pode verificar se o serviço foi iniciado com sucesso com:

    $ systemctl status systemd-modules-load
    ----------------------------------------------------------------------
    systemd-modules-load.service - Load Kernel Modules
       Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)
       Active: active (exited) since So 2013-08-25 12:22:31 CEST; 34s ago
         Docs: man:systemd-modules-load.service(8)
               man:modules-load.d(5)
     Process: 19005 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=0/SUCCESS)
    Aug 25 12:22:31 mypc systemd[1]: Started Load Kernel Modules.
    
Rahul Khimasia
fonte
5
Ótima resposta - _PID=agora estará para sempre na minha caixa de ferramentas. Obrigado!
Adrian Günter
11
Infelizmente, o meu /etc/modules-load.d/está vazio e ainda diz Falha ao encontrar o módulo blá . E agora?
Adrian
2
Você também pode querer conferir journalctl _SYSTEMD_UNIT=systemd-modules-load.service. Salva procurando o PID.
TwoD
2
Do usuário bobafetthotmail : procure também /usr/lib/modules-load.d/arquivos que carregam módulos, pois é onde os aplicativos colocam os módulos necessários. O /etc/modules-load.d/é suposto ser para arquivos de configuração do usuário.
Fixer1234 9/0918