Як я можу зрозуміти, чому сервіс systemctl “завантаження модулів-систем” не працює?


27

Якийсь час я бачив, як червоний текст блимає під час завантаження. Сьогодні я вирішив заглянути в це. Сервіс systemctl systemd-modules-load.serviceне працює з цим текстом:

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

листоп. 09 02:58:48 bonus-debian systemd [1]: Запуск модулів завантаження ядра ...
листоп. 09 02:58:48 bonus-debian systemd-module-load [644]: Не вдалося знайти модуль '-r usbhid'
листоп. 09 02:58:48 bonus-debian systemd [1]: systemd-module-load.service: Основний процес вийшов, код = вийшов, статус = 1 / НЕПРАВЛІННЯ
листоп. 09 02:58:48 bonus-debian systemd [1]: Не вдалося запустити Завантаження модулів ядра.
листоп. 09 02:58:48 bonus-debian systemd [1]: systemd-module-load.service: Блок введений невдалий стан.
листоп. 09 02:58:48 bonus-debian systemd [1]: systemd-module-load.service: Помилка з результатом 'code-вихід'.

Я подумав, що розпочну з проблеми Googling:

Знімок екрана

Ой.

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

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

Як я можу зрозуміти, чому сервіс systemctl "завантаження модулів-модулів" не працює?


Ви змінили udevправило, випадково?
MariusMatutiae

Чи можете ви перевірити журнали на журнали? Чи намагається завантажити модуль під назвою "-r usbhid"?
Крісті

Відповіді:


40

У мене теж було це питання. Мені вдалося вирішити це, дотримуючись вказівок на вікі-сторінці Arch Linux systemd . Ось підсумок того, що я зробив:

  1. Давайте знайдемо системні сервіси, які не вдалося запустити

    $ systemctl --failed  
    ------------------------------------------------------------------------
    systemd-modules-load.service   loaded failed failed  Load Kernel Modules
    
  2. Гаразд, ми знайшли проблему з системою завантаження системних модулів. Ми хочемо дізнатися більше.

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

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