ฉันจะทราบได้อย่างไรว่าเหตุใดบริการ 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; static; preset ของผู้ขาย: เปิดใช้งาน)
   ใช้งานอยู่: ล้มเหลว (ผลลัพธ์: exit-code) ตั้งแต่ ma 2015-11-09 02:58:48 CET; 5 นาทีที่แล้ว
     Docs: man: systemd-modules-load.service (8)
           ชาย: โมดูล load.d (5)
  กระบวนการ: 644 ExecStart = / lib / systemd / systemd-modules-load (รหัส = ออกจากสถานะ = 1 / ล้มเหลว)
 PID หลัก: 644 (รหัส = ออกจากสถานะ = 1 / ความล้มเหลว)

พฤศจิกายน 09 02:58:48 โบนัสเดเบียน systemd [1]: การเริ่มต้นโมดูลเคอร์เนลโหลด ...
พฤศจิกายน 09 02:58:48 โบนัสเดเบียน systemd-modules-load [644]: ล้มเหลวในการค้นหาโมดูล '-r usbhid'
พฤศจิกายน 09 02:58:48 โบนัสเดเบียน systemd [1]: systemd-modules-load.service: ออกจากกระบวนการหลักแล้วโค้ด = ออกจากสถานะ = 1 / FAILURE
พฤศจิกายน 09 02:58:48 โบนัสเดเบียน systemd [1]: ล้มเหลวในการเริ่มโหลดโมดูลเคอร์เนล
พฤศจิกายน 09 02:58:48 โบนัสเดเบียน systemd [1]: systemd-modules-load.service: หน่วยที่ป้อนล้มเหลว
พฤศจิกายน 09 02:58:48 โบนัสเดเบียน systemd [1]: systemd-modules-load.service: ล้มเหลวด้วยผลลัพธ์ 'exit-code'

ฉันคิดว่าฉันเริ่มโดย Googling ปัญหา:

ภาพหน้าจอ

อุ๊ยตาย

ระบบของฉันดูเหมือนจะไม่ทราบว่าไดรเวอร์ไม่สามารถโหลดได้เนื่องจากฉันไม่ได้สังเกตเห็นประสบการณ์ที่เสื่อมโทรม แต่ฉันยังคงต้องการแก้ไข

ตั้งแต่ Google ไปถึงไหนฉันก็ติดอยู่แล้ว ฉันไม่รู้ว่าจะเริ่มมองหาที่ไหนดี

ฉันจะทราบได้อย่างไรว่าเหตุใดบริการ systemctl "systemd-modules-load" จึงล้มเหลว


คุณเปลี่ยนudevกฎโดยบังเอิญหรือไม่?
MariusMatutiae

คุณสามารถเช็คอิน journalctl เพื่อดูบันทึกได้หรือไม่ พยายามโหลดโมดูลชื่อ "-r usbhid" หรือไม่?
Cristi

คำตอบ:


40

ฉันก็มีปัญหานี้เช่นกัน ฉันก็สามารถที่จะแก้ปัญหาได้โดยทำตามคำแนะนำบนโค้งลินุกซ์หน้าวิกิพีเดีย 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)
    

    หาก ID กระบวนการไม่อยู่ในรายการให้เริ่มบริการที่ล้มเหลวด้วย

    $ systemctl restart systemd-modules-load
    
  3. ตอนนี้เรามีรหัสกระบวนการ (PID) เพื่อตรวจสอบข้อผิดพลาดนี้ในเชิงลึก ป้อนคำสั่งต่อไปนี้ด้วย ID กระบวนการปัจจุบัน (ที่นี่: 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. ข้อความแสดงข้อผิดพลาดโมดูล 'blacklist 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=ตอนนี้จะอยู่ในกล่องเครื่องมือของฉันตลอดไป ขอบคุณ!
Adrian Günter

1
น่าเสียดายที่ฉัน/etc/modules-load.d/ว่างเปล่าและก็ยังบอกว่าไม่สามารถหาโมดูลblahได้ เกิดอะไรขึ้น
เอเดรียน

2
journalctl _SYSTEMD_UNIT=systemd-modules-load.serviceนอกจากนี้คุณยังอาจต้องการตรวจสอบ บันทึกการค้นหา PID
TwoD

2
จากผู้ใช้bobafetthotmail : ค้นหา/usr/lib/modules-load.d/โมดูลการโหลดไฟล์ด้วยเนื่องจากมีแอพพลิเคชั่นที่วางโมดูลที่ต้องการ ที่/etc/modules-load.d/ควรจะเป็นสำหรับไฟล์การกำหนดค่าผู้ใช้
fixer1234
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.