Bagaimana saya mencari tahu mengapa layanan systemctl "systemd-modules-load" gagal?

27

Untuk beberapa waktu saya telah melihat beberapa teks merah berkedip saat boot. Hari ini saya memutuskan untuk memeriksanya. Layanan systemctl systemd-modules-load.servicegagal dengan teks ini:

tomas @ bonus-debian: ~ $ sudo systemctl status systemd-modules-load
● systemd-modules-load.service - Load Kernel Modul
   Dimuat: dimuat (/lib/systemd/system/systemd-modules-load.service; statis; preset vendor: diaktifkan)
   Aktif: gagal (Hasil: kode keluar) sejak ma. 2015-11-09 02:58:48 CET; 5 menit yang lalu
     Documents: man: systemd-modules-load.service (8)
           man: modules-load.d (5)
  Proses: 644 ExecStart = / lib / systemd / systemd-modules-load (kode = keluar, status = 1 / GAGAL)
 PID Utama: 644 (kode = keluar, status = 1 / GAGAL)

nov. 09 02:58:48 bonus-debian systemd [1]: Mulai Memuat Modul Kernel ...
nov. 09 02:58:48 bonus-debian systemd-modules-load [644]: Gagal menemukan modul '-r usbhid'
nov. 09 02:58:48 bonus-debian systemd [1]: systemd-modules-load.service: Proses utama keluar, kode = keluar, status = 1 / GAGAL
nov. 09 02:58:48 bonus-debian systemd [1]: Gagal memulai Load Kernel Modul.
nov. 09 02:58:48 bonus-debian systemd [1]: systemd-modules-load.service: Unit dimasukkan ke kondisi gagal.
nov. 09 02:58:48 bonus-debian systemd [1]: systemd-modules-load.service: Gagal dengan hasil 'exit-code'.

Saya pikir saya akan mulai dengan Googling masalah:

Tangkapan layar

Aduh.

Sistem saya tampaknya tidak keberatan bahwa pengemudi gagal memuat, karena saya belum melihat pengalaman yang menurun, tetapi saya masih ingin memperbaikinya.

Karena Google tidak membuat saya, saya sudah terjebak. Saya tidak tahu harus mulai dari mana.

Bagaimana saya mencari tahu mengapa layanan systemctl "systemd-modules-load" gagal?

Hubro
sumber
Apakah Anda mengubah udevaturan?
MariusMatutiae
Bisakah Anda memeriksa jurnal untuk log? Apakah ia mencoba memuat modul bernama "-r usbhid"?
cristi

Jawaban:

40

Saya juga punya masalah ini. Saya dapat menyelesaikannya dengan mengikuti instruksi pada halaman wiki Arch Linux systemd . Berikut ini ringkasan dari apa yang saya lakukan:

  1. Mari kita temukan layanan systemd yang gagal untuk memulai

    $ systemctl --failed  
    ------------------------------------------------------------------------
    systemd-modules-load.service   loaded failed failed  Load Kernel Modules
    
  2. Oke, kami menemukan masalah dengan layanan systemd-modules-load. Kami ingin tahu lebih banyak.

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

    Jika ID Proses tidak terdaftar, mulai kembali layanan yang gagal dengan

    $ systemctl restart systemd-modules-load
    
  3. Sekarang kita memiliki id proses (PID) untuk menyelidiki kesalahan ini secara mendalam. Masukkan perintah berikut dengan ID Proses saat ini (di sini: 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. Kami melihat bahwa beberapa konfigurasi modul kernel memiliki pengaturan yang salah. Oleh karena itu kita melihat pengaturan ini di /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. Pesan kesalahan Gagal menemukan modul 'blacklist usblp' mungkin terkait dengan pengaturan yang salah di dalam blacklist.conf. Mari menonaktifkannya dengan memasukkan tanda # sebelum setiap opsi yang kami temukan melalui langkah 3:

    /etc/modules-load.d/blacklist.conf  
    ----------------------------------------------------------------------
    # blacklist usblp  
    # install usblp /bin/false  
    
  6. Sekarang, cobalah untuk memulai systemd-modules-load:

    $ systemctl restart systemd-modules-load  
    

    Jika berhasil, ini seharusnya tidak meminta apa pun. Jika Anda melihat kesalahan, kembali ke langkah 3 dan gunakan PID baru untuk menyelesaikan kesalahan yang tersisa.

    Jika semuanya baik-baik saja, Anda dapat memverifikasi bahwa layanan dimulai dengan sukses dengan:

    $ 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
sumber
5
Jawaban yang bagus - _PID=sekarang akan selamanya ada di kotak alat saya. Terima kasih!
Adrian Günter
1
Sayangnya, saya /etc/modules-load.d/kosong, dan masih mengatakan Gagal menemukan modul bla . Apa sekarang?
Adrian
2
Anda mungkin juga ingin check out journalctl _SYSTEMD_UNIT=systemd-modules-load.service. Menghemat mencari PID.
TwoD
2
Dari pengguna bobafetthotmail : lihat juga /usr/lib/modules-load.d/untuk memuat file modul, karena ada tempat aplikasi menempatkan modul yang mereka butuhkan. The /etc/modules-load.d/seharusnya untuk file konfigurasi pengguna.
fixer1234