Cara menentukan dan memperbaiki masalah boot di Linux

Cara menentukan dan memperbaiki masalah boot di Linux

Sistem Linux melakukan sepatu bot begitu cepat sehingga sebagian besar output menggulir terlalu cepat untuk membaca teks (menunjukkan layanan yang dimulai) dikirim ke konsol. Oleh karena itu mengamati masalah boot/kesalahan menjadi sedikit tantangan bagi kami.

Dalam artikel ini, kami akan menjelaskan secara singkat berbagai tahapan dalam proses boot sistem Linux, kemudian pelajari cara membangun dan mencapai bagian bawah masalah boot: dalam istilah file untuk melihat atau perintah untuk melihat pesan boot sistem.

Ringkasan Proses Boot Linux

Singkatnya, begitu kita menekan Nyalakan tombol, Bios (Sistem output input dasar) Program yang terintegrasi dalam motherboard melakukan a POS (Kekuatan dalam tes diri) - Di mana perangkat keras seperti disk, RAM (memori akses acak), keyboard, dll dipindai. Dalam hal kesalahan (perangkat keras yang hilang/tidak berfungsi), dilaporkan di layar.

Selama POS, itu Bios Juga mencari perangkat boot, disk untuk stat stat dari (biasanya hard disk pertama, namun kami dapat mengkonfigurasinya menjadi DVD, USB, kartu jaringan dll.

Maka sistem akan terhubung ke disk dan mencari Rekaman Boot Master (Ukuran 512 byte) yang menyimpan boot loader (ukuran 446 byte) dan sisa ruang menyimpan info tentang partisi disk (empat maksimum) dan MBR itu sendiri.

Disarankan Baca: 4 loader boot linux terbaik

Boot loader akan mengidentifikasi dan menunjuk ke, serta memuat Inti dan file initrd (inisialisasi RAM disk - menyediakan akses kernel ke sistem file root yang dipasang dan modul/driver yang disimpan di /lib direktori), yang umumnya disimpan di /boot Direktori Sistem File.

Setelah kernel dimuat, ia mengeksekusi init (atau systemd pada distro linux yang lebih baru), proses pertama dengan PID 1, yang pada gilirannya memulai semua proses lain pada sistem. Ini juga merupakan proses terakhir yang dieksekusi pada shutdown sistem.

Bagaimana mengetahui masalah boot linux atau pesan kesalahan

Seperti yang kami sebutkan sebelumnya, proses boot Linux terjadi dengan cepat bahwa kami bahkan tidak dapat dengan jelas membaca sebagian besar output yang dikirim ke konsol.

Jadi perhatikan masalah boot/kesalahan meminta administrator sistem untuk melihat ke file -file penting tertentu dalam hubungannya dengan perintah tertentu. Dan ini termasuk:

/var/log/boot.Log - Pesan Boot Sistem Logs

Ini mungkin file pertama yang ingin Anda lihat, untuk melihat semua yang dibuka selama boot sistem.

Daripada berusaha keras untuk mengikuti output pada layar selama boot, kami dapat melihat file ini setelah proses boot telah selesai untuk membantu kami dalam menentukan dan menyelesaikan masalah/kesalahan boot.

Kami menggunakan perintah CAT untuk tujuan itu sebagai berikut (di bawah ini adalah sampel dari file ini):

# kucing/var/log/boot.catatan 
Lihat Log Boot Linux
[OK] Mulai memuat/menyimpan status sakelar kill RF. [Waktu] Waktu menunggu perangkat dev-disk-by \ x2duuid-53e41ce9 \ x2ddc18 \ x2d458c \ x2dbc08 \ x2d584c208ed615.perangkat. [Tergantung] ketergantungan gagal untuk/dev/disk/by-uuid/53e41ce9-dc18-458c-bc08-584c208ed615. [Tergantung] ketergantungan gagal untuk pertukaran. [OK] mencapai inisialisasi sistem target. [OK] Mendengarkan soket aktivasi daemon uuid. [OK] mulai pembersihan harian direktori sementara. [Ok] Mendengarkan penjadwal cangkir. [OK] memulai kegiatan apt harian. [OK] mencapai pengatur waktu target. [OK] Mendengarkan Soket Aktivasi Avahi MDNS/DNS-SD Stack. [OK] Memulai ACPI Events Check. [OK] Memulai Pembaruan ResolvConfon untuk DNS NetworkD. [OK] Mulai Penjadwal Piala. [OK] mencapai jalur target. [OK] Mendengarkan Soket Bus Pesan Sistem D-Bus. [Ok] Mendengarkan soket mendengarkan acpid. Mulai Konsol Sistem Startup Logging… [OK] Mendengarkan di soket layanan web kokpit. [OK] mencapai soket target. [OK] mencapai sistem dasar target. Memulai LSB: Atur Gubernur Penskalaan Frekuensi CPU ke "OnDemand" ... [OK] Memulai ACPI Event Daemon. [OK] Mulai Mintsystem.melayani. Mulai Deteksi GPU yang tersedia dan berurusan dengan perubahan sistem apa pun… Mulai LSB: Daemon untuk menyeimbangkan interupsi untuk sistem SMP… Memulai Layanan Bluetooth… [OK] Memulai Updater Database Virus CLAMAV. Memulai LSB: Mulai Syslogd… [OK] Memulai Daemon Pemrosesan Program Latar Belakang Reguler. Mulai Manajer Modem… Layanan Akun Mulai… 

Dari output di atas, kita dapat melihat bahwa ada masalah boot yang ditunjukkan oleh baris di bawah ini.

[Tergantung] ketergantungan gagal untuk/dev/disk/by-uuid/53e41ce9-dc18-458c-bc08-584c208ed615. [Tergantung] ketergantungan gagal untuk pertukaran. 

Masalah: Masalah dengan partisi swap; Sistem gagal membaca file swap/perangkat/partisi atau tidak ada.

Mari kita periksa apakah sistem menggunakan ruang swap dengan perintah gratis.

# bebas Total digunakan Buff/cache bersama gratis yang tersedia MEM: 3742792 2421060 433696 287376 888036 967000 SWAP: 0 0 0 

Atau, kami dapat menjalankan Perintah Swapon Untuk melihat ringkasan penggunaan ruang swap sistem (kami tidak akan mendapatkan output apa pun).

# swapon -s 

Kami dapat menyelesaikan masalah ini, dengan membuat ruang swap di Linux.

Catatan: Konten file ini dihapus di System Shutdown: Data baru disimpan di dalamnya di boot baru.

/var/log/pesan - log sistem umum

File ini menyimpan pesan sistem umum, termasuk pesan yang dicatat selama boot sistem.

Untuk melihatnya, ketik:

# kucing/var/log/pesan 
Lihat Pesan Log Sistem
4 Jun 13:04:44 Tecmint Syslogd (GNU Inetutils 1.9.4): Restart 4 Jun 13:19:55 Tecmint - Mark - 4 Jun 13:39:55 Tecmint - Mark - 4 Jun 13:59:55 Tecmint - Mark - 4 Jun 14:19:55 Tecmint - Mark - 4 Jun 14:20:17 Tecmint VMunix: [4945.388740] I915 0000: 00: 02.0: Bar 6: [??? 0x00000000 Bendera 0x2] Memiliki Alignment Bogus 4 Jun 14:20:17 Tecmint VMunix: [4945.388837] I915 0000: 00: 02.0: Bar 6: [??? 0x00000000 Bendera 0x2] Memiliki Alignment Bogus 4 Jun 14:20:17 Tecmint VMunix: [4945.388903] I915 0000: 00: 02.0: Bar 6: [??? 0x00000000 Bendera 0x2] Memiliki Alignment Bogus 4 Jun 14:20:17 Tecmint VMunix: [4945.388930] I915 0000: 00: 02.0: Bar 6: [??? 0x00000000 Bendera 0x2] Memiliki Alignment Bogus 4 Jun 14:20:17 Tecmint VMunix: [4945.389334] I915 0000: 00: 02.0: Bar 6: [??? 0x00000000 Bendera 0x2] Memiliki Alignment Bogus 4 Jun 14:20:17 Tecmint VMunix: [4945.389402] PCIEPORT 0000: 00: 1C.0: Bar 15: Ditugaskan [MEM 0xDFA00000-0XDFBFFFFFFFFFFFFFFERBIT]… 

Karena file ini mungkin relatif panjang, kita dapat melihatnya di halaman menggunakan lebih banyak perintah (yang bahkan menunjukkan persentase) seperti ini.

# more/var/log/pesan 

Isi /var/log/pesan Berbeda dengan file sebelumnya tidak dibersihkan karena tidak hanya berisi pesan boot tetapi juga pesan tentang aktivitas sistem lainnya. Jadi file yang lebih lama dikompresi dan disimpan pada sistem untuk inspeksi nanti seperti yang ditunjukkan di bawah ini.

# ls -l pesan* -RW-R-R-1 Root Root 1206127 Juni 10 14:20 Pesan -RW-R-RO-1 Root Root 1419494 Jun 4 13:00 Pesan.1 -rw-r-r-- 1 root root 153011 28 Mei 09:30 Pesan.2.GZ 

DMESG - Menampilkan pesan kernel

Perintah DMESG dapat menampilkan operasi setelah proses boot selesai, seperti opsi baris perintah yang diteruskan ke kernel; Komponen perangkat keras terdeteksi, peristiwa ketika perangkat USB baru ditambahkan, atau kesalahan seperti kegagalan NIC (kartu antarmuka jaringan) dan driver melaporkan tidak ada aktivitas tautan yang terdeteksi di jaringan dan banyak lagi.

# dmesg 
Tunjukkan pesan kernel
[0.000000] menginisialisasi cgroup subsys cpuset [0.000000] menginisialisasi cgroup subsys cpu [0.000000] menginisialisasi cgroup subsys cpuacct [0.000000] Linux Versi 4.4.0-21-generic ([email dilindungi]) (GCC Version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2)) #37-Ubuntu SMP Mon 18 Apr 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-Generic 4.4.6) [0.000000] baris perintah: boot_image =/boot/vmlinuz-4.4.0-21-generic root = uuid = 57b36d48-1938-43c2-bf85-e97bc9f423ea ro splash sunyi [0.000000] Kernel mendukung CPU: [0.000000] Intel asli Intel [0.000000] AMD AUTHENTICAMD [0.000000] centaurhauls [0.000000] x86/fpu: xstate_offset [2]: 576, xstate_sizes [2]: 256 [0.000000] X86/FPU: Fitur XSAVE Mendukung 0x01: 'X87 Register Floating Point' [0.000000] X86/FPU: Fitur XSAVE Mendukung 0x02: 'SSE Registers' [0.000000] X86/FPU: Fitur XSAVE Mendukung 0x04: 'AVX Registers' [0.000000] X86/FPU: Fitur XState yang diaktifkan 0x7, Ukuran konteks adalah 832 byte, menggunakan format 'Standar'. [0.000000] X86/FPU: Menggunakan sakelar konteks FPU 'bersemangat'. [0.000000] E820: Peta Ram Fisik yang Disediakan BIOS: [0.000000] BIOS-E820: [MEM 0x0000000000000000-0x000000000008FFFFFT] dapat digunakan [0.000000] BIOS-E820: [MEM 0X00000000090000-0X00000000000BFFFFT] Dicadangkan [0.000000] BIOS-E820: [MEM 0x00000000100000-0x000000001FFFFFFF] dapat digunakan [0.000000] BIOS-E820: [MEM 0x00000000200000-0x00000000201FFFFF] Dicadangkan [0.000000] BIOS-E820: [MEM 0x00000000202000-0x0000000040003FFF] dapat digunakan [0.000000] BIOS-E820: [MEM 0x0000000040004000-0x0000000040004FFF] Dicadangkan [0.000000] BIOS-E820: [MEM 0x0000000040005000-0x0000000080B2FFFFFFFFFFFFFT] dapat digunakan [0.000000] BIOS-E820: [MEM 0x0000000080B30000-0X0000000080D31FFF] Dicadangkan [0.000000] BIOS-E820: [MEM 0X00000080D32000-0X0000000000CE3EEFFF] dapat digunakan [0.000000] BIOS-E820: [MEM 0x00000000CE3EF000-0X00000000CE5EEFFF] TYPE 20 [0.000000] BIOS-E820: [MEM 0x00000000CE5EF000-0X0000000000DAEEFFF] Dicadangkan [0.000000] BIOS-E820: [MEM 0x0000000000DAEF000-0X0000000000DAF9EFFF] ACPI NVS… 

Journalctl - Isi kueri dari SystemD Journal

Ini berguna di sebagian besar distro Linux saat ini menggunakan SystemD: Sistem dan Manajer Layanan terbaru. Di bawahnya, logging sistem dilakukan melalui komponen jurnal - lokasi terpusat untuk semua pesan yang dicatat oleh komponen yang berbeda.

Pesan -pesan ini termasuk kernel dan pesan boot; Pesan dari syslog atau berbagai layanan. Kami dapat menggunakannya untuk meninjau pesan boot dan membuat masalah boot dengan membaca output dan mengidentifikasi garis yang menarik (kesalahan yang ditunjukkan oleh garis merah tergantung pada pengaturan warna teks terminal).

# journalctl 
Tampilkan konten SystemD
13 Jun 16:35:32 Tecmint MTP-Probe [963]: Memeriksa Bus 2, Perangkat 5: "/Sys/Perangkat/PCI0000: 00/0000: 00: 1D.0/U Jun 13 16:35:32 Tecmint MTP-Probe [963]: Bus: 2, Perangkat: 5 bukan perangkat MTP 13 Jun 16:35:54 Tecmint Systemd [1]: dev-disk-by \ x2duuid -53e41ce9 \ x2ddc18 \ x2d458c \ x2dbc08 \ x2d584c208ed615. 13 Jun 16:35:54 Tecmint Systemd [1]: Waktu keluar menunggu perangkat dev-disk-by \ x2duuid-53e41ce9 \ x2ddc18 \ x2d 13 Jun 16:35:54 Tecmint Systemd [1]: Gagal untuk /dev / Disk/By-UUID/53E41CE9-DC18-458C-BC08-584C2 13 Jun 16:35:54 Tecmint Systemd [1]: Ketergantungan Gagal untuk Pertukaran. 13 Jun 16:35:54 Tecmint Systemd [1]: Swap.Target: Pertukaran Pekerjaan.Target/Mulai gagal dengan hasil 'ketergantungan'. 13 Jun 16:35:54 Tecmint Systemd [1]: dev-disk-by \ x2duuid-53e41ce9 \ x2ddc18 \ x2d458c \ x2dbc08 \ x2d584c208ed615. 13 Jun 16:35:54 Tecmint Systemd [1]: dev-disk-by \ x2duuid-53e41ce9 \ x2ddc18 \ x2d458c \ x2dbc08 \ x2d584c208ed615. 13 Jun 16:35:54 Tecmint Systemd [1]: Mencapai inisialisasi sistem target yang dicapai. 13 Jun 16:35:54 Tecmint Systemd [1]: Memulai ACPI Events Check. 13 Jun 16:35:54 Tecmint Systemd [1]: Mendengarkan pada Penjadwal Piala. 13 Jun 16:35:54 Tecmint Systemd [1]: Starting Console System Startup Logging… 13 Jun 16:35:54 Tecmint Systemd [1]: Mulai pembersihan harian direktori sementara. 

Di atas adalah sampel output perintah yang menunjukkan kesalahan yang sudah kami identifikasi dengan melihat /var/log/boot.catatan: Kesalahan partisi swap. Untuk melihat lebih banyak baris output, cukup tekan [Memasuki] tombol.

Periksa juga panduan yang berguna tentang boot sistem Linux dan manajemen layanan sehubungan dengan sistem umum dan manajer layanan:

  1. Manajemen proses di RHEL 7: Boot, shutdown, dan semuanya di antaranya
  2. Mengelola Proses dan Layanan Startup Sistem (Sysvinit, SystemD dan Upstart)
  3. Kisah di balik 'init' dan 'systemd': mengapa 'init' perlu diganti dengan 'systemd'

Dalam artikel ini, kami menjelaskan secara singkat berbagai tahap yang berbeda dalam proses boot sistem Linux serta belajar bagaimana membangun dan mungkin menyelesaikan masalah boot. Untuk menambahkan pemikiran apa pun ke panduan ini, gunakan formulir komentar di bawah ini.