Как мне выяснить, почему служба systemctl «systemd-modules-load» не работает?


27

Некоторое время я видел какой-то красный текст, вспыхивающий во время загрузки. Сегодня я решил разобраться в этом. Служба systemctl systemd-modules-load.serviceтерпит неудачу с этим текстом:

tomas @ bonus-debian: ~ $ sudo systemctl status systemd-modules-load
● systemd-modules-load.service - Загрузка модулей ядра
   Загружен: загружен (/lib/systemd/system/systemd-modules-load.service; статический; предустановка поставщика: включена)
   Активно: не удалось (Результат: код выхода), так как ма. 2015-11-09 02:58:48 CET; 5 минут назад
     Документы: man: systemd-modules-load.service (8)
           Мужчины: модули-load.d (5)
  Процесс: 644 ExecStart = / lib / systemd / systemd-modules-load (код = выход, статус = 1 / отказ)
 Основной PID: 644 (код = выход, статус = 1 / отказ)

ноябрю 09 02:58:48 bonus-debian systemd [1]: запуск модулей загрузки ядра ...
ноябрю 09 02:58:48 bonus-debian systemd-modules-load [644]: не удалось найти модуль '-r usbhid'
ноябрю 09 02:58:48 bonus-debian systemd [1]: systemd-modules-load.service: основной процесс завершен, код = завершен, статус = 1 / НЕИСПРАВНОСТЬ
ноябрю 09 02:58:48 bonus-debian systemd [1]: не удалось запустить загрузку модулей ядра.
ноябрю 09 02:58:48 bonus-debian systemd [1]: systemd-modules-load.service: модуль вошел в состояние сбоя.
ноябрю 09 02:58:48 bonus-debian systemd [1]: systemd-modules-load.service: Сбой с результатом 'код выхода'.

Я думал, что начну с поиска в Google:

Скриншот

Уч.

Моя система, похоже, не возражает, что драйвер не загрузился, так как я не заметил ухудшения работы, но я все еще хотел бы это исправить.

Так как Google никуда меня не привел, я уже застрял. Понятия не имею, с чего начать.

Как выяснить, почему не работает сервис systemctl "systemd-modules-load"?


Вы udevслучайно изменили правило?
MariusMatutiae

Можете ли вы проверить в журнале журналы? Он пытается загрузить модуль с именем "-r usbhid"?
Кристи

Ответы:


40

У меня тоже была эта проблема. Я смог решить эту проблему, следуя инструкциям на вики-странице Arch Linux systemd . Вот краткое изложение того, что я сделал:

  1. Позволяет найти службы systemd, которые не запускаются

    $ systemctl --failed  
    ------------------------------------------------------------------------
    systemd-modules-load.service   loaded failed failed  Load Kernel Modules
    
  2. Хорошо, мы обнаружили проблему с сервисом systemd-modules-load. Мы хотим знать больше.

    $ 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)
    

    Если идентификатор процесса не указан, просто перезапустите отказавший сервис с помощью

    $ systemctl restart systemd-modules-load
    
  3. Теперь у нас есть идентификатор процесса (PID) для углубленного изучения этой ошибки. Введите следующую команду с текущим идентификатором процесса (здесь: 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. Мы видим, что некоторые конфигурации модулей ядра имеют неправильные настройки. Поэтому мы посмотрим на эти настройки в /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. Сообщение об ошибке «Не удалось найти модуль« черный список usblp »может быть связано с неправильной настройкой внутри blacklist.conf». Давайте отключим его, вставив завершающий # перед каждым вариантом, найденным на шаге 3:

    /etc/modules-load.d/blacklist.conf  
    ----------------------------------------------------------------------
    # blacklist usblp  
    # install usblp /bin/false  
    
  6. Теперь попробуйте запустить systemd-modules-load:

    $ systemctl restart systemd-modules-load  
    

    Если это было успешно, это не должно ничего подсказывать. Если вы видите какую-либо ошибку, вернитесь к шагу 3 и используйте новый PID для устранения оставшихся ошибок.

    Если все в порядке, вы можете проверить, что служба была успешно запущена с:

    $ 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.
    

5
Отличный ответ - _PID=теперь навсегда будет в моем наборе инструментов. Благодарность!
Адриан Гюнтер

1
К сожалению, мой /etc/modules-load.d/пустой, и он все еще говорит Не удалось найти модуль бла . Что теперь?
Адриан

2
Вы также можете проверить journalctl _SYSTEMD_UNIT=systemd-modules-load.service. Сохраняет поиск PID.
Двое

2
От пользователя bobafetthotmail : ищите также /usr/lib/modules-load.d/модули загрузки файлов, поскольку там, где приложения размещают нужные им модули. /etc/modules-load.d/Должен быть для конфигурационных файлов пользователя.
fixer1234
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.