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

Некоторое время я видел какой-то красный текст, вспыхивающий во время загрузки. Сегодня я решил разобраться в этом. Сервис 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"?

1 ответ

У меня тоже была эта проблема. Я смог решить эту проблему, следуя инструкциям на вики-странице 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.
    

В моем случае простой

sudo update-initramfs -u

решил проблему.

У меня возникла эта проблема из-за неполного удаления камеры droidcam. Я продолжал видеть ту же ошибку при загрузке (сбой systemd-modules-load), хотя все следы мошеннического модуля были удалены. Ссылка на модуль была на начальном рамдиске. Мне пришлось создать новый начальный рамдиск, запустив "dracut" от имени пользователя root. Чтобы создать новый виртуальный диск с использованием синтаксиса bash:

cd /boot
mv initramfs-$(uname -r).img initramfs-$(uname -r).img-bak
dracut initramfs-$(uname -r).img
Другие вопросы по тегам