NS Sistem Linux boot begitu cepat sehingga sebagian besar keluaran bergulir terlalu cepat untuk membaca teks (menunjukkan layanan yang sedang dimulai) yang dikirim ke konsol. Oleh karena itu mengamati masalah/error booting menjadi sedikit tantangan bagi kami.
Pada artikel ini, kami akan menjelaskan secara singkat tahapan yang berbeda dalam proses boot sistem Linux, kemudian pelajari caranya buat dan selesaikan masalah boot: dalam hal file untuk dilihat atau perintah untuk melihat boot sistem pesan.
Singkatnya, setelah kita menekan tombol Nyalakan tombol, BIOS (Sistem Input Output Dasar) program yang terintegrasi dalam motherboard melakukan a POS (Power on Self Test) – di mana perangkat keras seperti disk, RAM (Random Access Memory), keyboard, dll dipindai. Jika terjadi kesalahan (perangkat keras yang hilang/tidak berfungsi), hal itu dilaporkan di layar.
Selama POS, NS BIOS juga mencari perangkat boot, disk untuk memulai (biasanya hard disk pertama, namun kami dapat mengonfigurasinya menjadi DVD, USB, Kartu Jaringan, dll.).
Kemudian sistem akan terhubung ke disk dan mencari Catatan Boot Master (berukuran 512 byte) yang menyimpan boot loader (berukuran 446 byte) dan sisa ruang menyimpan info tentang partisi disk (maksimum empat) dan MBR itu sendiri.
Disarankan Baca:4 Boot Loader Linux Terbaik
Pemuat boot akan mengidentifikasi dan mengarahkan, serta memuat Inti dan file initrd (disk ram inisialisasi – menyediakan akses kernel ke sistem file root yang terpasang dan modul/driver yang disimpan di /lib direktori), yang umumnya disimpan di /boot direktori sistem file.
Setelah kernel dimuat, ia menjalankan init (atau systemd pada distro Linux yang lebih baru), proses pertama dengan ID 1, yang pada gilirannya memulai semua proses lain pada sistem. Ini juga merupakan proses terakhir yang dijalankan pada sistem shutdown.
Seperti yang kami sebutkan sebelumnya, proses boot Linux terjadi dengan cepat sehingga kami bahkan tidak dapat membaca dengan jelas sebagian besar output yang dikirim ke konsol.
Jadi, mencatat masalah/kesalahan boot meminta administrator sistem untuk melihat file penting tertentu dalam hubungannya dengan perintah tertentu. Dan ini termasuk:
Ini mungkin file pertama yang ingin Anda lihat, untuk melihat semua yang dibuka selama boot sistem.
Daripada berusaha keras untuk mengikuti output di layar selama boot, kita dapat melihat file ini setelah proses boot selesai untuk membantu kita dalam menentukan dan menyelesaikan masalah/kesalahan boot.
Kami menggunakan perintah kucing untuk tujuan itu sebagai berikut (di bawah ini adalah contoh file ini):
# cat /var/log/boot.log.
Lihat Log Boot Linux
[ OK ] Mulai Muat/Simpan Status Saklar Pembunuh RF. [ WAKTU ] Waktu habis menunggu perangkat dev-disk-by\x2duuid-53e41ce9\x2ddc18\x2d458c\x2dbc08\x2d584c208ed615.device. [DEPEND] Ketergantungan gagal untuk /dev/disk/by-uuid/53e41ce9-dc18-458c-bc08-584c208ed615. [DEPEND] Ketergantungan gagal untuk Swap. [ OK ] Mencapai target Inisialisasi Sistem. [ OK ] Mendengarkan pada soket aktivasi daemon UUID. [ OK ] Memulai Pembersihan Harian Direktori Sementara. [ OK ] Mendengarkan di CUPS Scheduler. [ OK ] Memulai aktivitas apt harian. [ OK ] Target Timer tercapai. [ OK ] Mendengarkan di Avahi mDNS/DNS-SD Stack Activation Socket. [ OK ] Memulai Pemeriksaan Acara ACPI. [ OK ] Mulai Memicu pembaruan resolvconf untuk DNS jaringan. [ OK ] Memulai Penjadwal CUPS. [ OK ] Mencapai Jalur target. [ OK ] Mendengarkan pada Soket Bus Pesan Sistem D-Bus. [ OK ] Mendengarkan di ACPID Listen Socket. Memulai Pencatatan Startup Sistem Konsol... [ OK ] Mendengarkan di Cockpit Web Service Socket. [ OK ] Mencapai target Soket. [ OK ] Mencapai target Sistem Dasar. Memulai LSB: Setel gubernur Penskalaan Frekuensi CPU ke "ondemand"... [ OK ] Memulai daemon acara ACPI. [ OK ] Mulai mintsystem.service. Mulai Deteksi GPU yang tersedia dan tangani setiap perubahan sistem... Memulai LSB: daemon untuk menyeimbangkan interupsi untuk sistem SMP... Memulai layanan Bluetooth... [ OK ] Memulai pembaruan basis data virus ClamAV. Memulai LSB: Memulai syslogd... [ OK ] Memulai daemon pemrosesan program latar belakang reguler. Memulai Pengelola Modem... Memulai Layanan Akun...
Dari output di atas, kita dapat melihat bahwa ada masalah boot yang ditunjukkan oleh baris di bawah ini.
[DEPEND] Ketergantungan gagal untuk /dev/disk/by-uuid/53e41ce9-dc18-458c-bc08-584c208ed615. [DEPEND] Ketergantungan gagal untuk Swap.
Masalah: Masalah dengan partisi swap; sistem gagal membaca file/perangkat/partisi swap atau tidak ada.
Mari kita periksa apakah sistem menggunakan ruang swap dengan perintah gratis.
# Gratis total buff/cache gratis yang digunakan bersama tersedia. Mem: 3742792 2421060 433696 287376 888036 967000. Tukar: 0 0 0.
Atau, kita dapat menjalankan perintah swapon untuk melihat ringkasan penggunaan ruang swap sistem (kami tidak akan mendapatkan output apa pun).
# swapon -s.
Kita bisa menyelesaikan masalah ini, dengan membuat ruang swap di Linux.
Catatan: Isi file ini dihapus pada sistem shutdown: data baru disimpan di dalamnya pada boot baru.
File ini menyimpan pesan sistem umum, termasuk pesan yang dicatat selama boot sistem.
Untuk melihatnya, ketik:
# cat /var/log/messages.
Lihat Pesan Log Sistem
4 Juni 13:04:44 tecmint syslogd (GNU inetutils 1.9.4): mulai ulang. 4 Juni 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 Juni 14:20:17 tecmint vmunix: [ 4945.388740] i915 0000:00:02.0: BAR 6: [??? 0x00000000 flags 0x2] memiliki keselarasan palsu. 4 Juni 14:20:17 tecmint vmunix: [ 4945.388837] i915 0000:00:02.0: BAR 6: [??? 0x00000000 flags 0x2] memiliki keselarasan palsu. 4 Juni 14:20:17 tecmint vmunix: [ 4945.388903] i915 0000:00:02.0: BAR 6: [??? 0x00000000 flags 0x2] memiliki keselarasan palsu. 4 Juni 14:20:17 tecmint vmunix: [ 4945.388930] i915 0000:00:02.0: BAR 6: [??? 0x00000000 flags 0x2] memiliki keselarasan palsu. 4 Juni 14:20:17 tecmint vmunix: [ 4945.389334] i915 0000:00:02.0: BAR 6: [??? 0x00000000 flags 0x2] memiliki keselarasan palsu. 4 Jun 14:20:17 tecmint vmunix: [ 4945.389402] pcieport 0000:00:1c.0: BAR 15: ditetapkan [mem 0xdfa00000-0xdfbfffff 64bit pref]...
Karena file ini mungkin relatif panjang, kita dapat melihatnya di halaman menggunakan lebih banyak perintah (yang bahkan menunjukkan persentase) seperti ini.
# lainnya /var/log/messages.
Isi dari /var/log/messages tidak seperti file sebelumnya tidak dibersihkan shutdown karena tidak hanya berisi pesan boot tetapi juga pesan tentang aktivitas sistem lainnya. Jadi file yang lebih lama dikompresi dan disimpan di sistem untuk pemeriksaan nanti seperti yang ditunjukkan di bawah ini.
# ls -l pesan* -rw-r--r-- 1 root root 1206127 10 Jun 14:20 pesan. -rw-r--r-- 1 root root 1419494 4 Jun 13:00 pesan.1. -rw-r--r-- 1 root root 153011 28 Mei 09:30 pesan.2.gz.
NS perintah dmesg dapat menunjukkan 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 NIC (Network Kartu Antarmuka) kegagalan dan driver melaporkan tidak ada aktivitas tautan yang terdeteksi di jaringan dan banyak lagi lagi.
# dmesg.
Tampilkan 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-generik ([dilindungi email]) (gcc versi 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) ) #37-Ubuntu SMP Sen 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 untuk silent splash. [ 0,000000] CPU yang didukung KERNEL: [ 0,000000] Intel GenuineIntel. [ 0,000000] AMD AuthenticAMD. [ 0,000000] Centaur CentaurHaul. [ 0,000000] x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256. [ 0,000000] x86/fpu: Mendukung fitur XSAVE 0x01: 'x87 floating point register' [ 0,000000] x86/fpu: Mendukung fitur XSAVE 0x02: 'register SSE' [ 0,000000] x86/fpu: Mendukung fitur XSAVE 0x04: 'AVX register' [ 0,000000] x86/fpu: Mengaktifkan fitur xstate 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 0x00000000000000000-0x0000000000008ffff] dapat digunakan. [ 0,000000] BIOS-e820: [mem 0x0000000000090000-0x00000000000bffff] dicadangkan. [ 0,000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] dapat digunakan. [ 0,000000] BIOS-e820: [mem 0x00000000200000000-0x00000000201fffff] dicadangkan. [ 0,000000] BIOS-e820: [mem 0x00000000202000000-0x0000000040003fff] dapat digunakan. [ 0,000000] BIOS-e820: [mem 0x0000000040004000-0x0000000040004fff] dicadangkan. [ 0,000000] BIOS-e820: [mem 0x00000000400050000-0x0000000080b2ffff] dapat digunakan. [ 0,000000] BIOS-e820: [mem 0x0000000080b30000-0x0000000080d31fff] dicadangkan. [ 0,000000] BIOS-e820: [mem 0x0000000080d32000-0x00000000ce3eefff] dapat digunakan. [ 0,000000] BIOS-e820: [mem 0x00000000ce3ef000-0x00000000ce5eefff] ketik 20. [ 0,000000] BIOS-e820: [mem 0x00000000ce5ef000-0x00000000daeeefff] dicadangkan. [ 0,000000] BIOS-e820: [mem 0x00000000daeef000-0x00000000daf9efff] ACPI NVS...
Ini berguna di sebagian besar distro Linux saat ini menggunakan systemd: sistem dan manajer layanan terbaru. Di bawahnya, pencatatan sistem dilakukan melalui komponen jurnal – lokasi terpusat untuk semua pesan yang dicatat oleh komponen yang berbeda.
Pesan-pesan ini termasuk pesan kernel dan boot; pesan dari syslog atau berbagai layanan. Kita dapat menggunakannya untuk meninjau pesan boot dan membuat masalah boot dengan membaca output dan mengidentifikasi baris yang diinginkan (kesalahan ditunjukkan oleh garis merah tergantung pada warna teks terminal pengaturan).
#jurnalctl.
Tampilkan Isi SystemD
13 Jun 16:35:32 tecmint mtp-probe[963]: memeriksa bus 2, perangkat 5: "/sys/devices/pci0000:00/0000:00:1d.0/u. 13 Juni 16:35:32 tecmint mtp-probe[963]: bus: 2, perangkat: 5 bukan perangkat MTP. 13 Juni 16:35:54 tecmint systemd[1]: dev-disk-by\x2duuid-53e41ce9\x2ddc18\x2d458c\x2dbc08\x2d584c208ed615. 13 Juni 16:35:54 tecmint systemd[1]: Waktu habis menunggu perangkat dev-disk-by\x2duuid-53e41ce9\x2ddc18\x2d. 13 Juni 16:35:54 tecmint systemd[1]: Ketergantungan gagal untuk /dev/disk/by-uuid/53e41ce9-dc18-458c-bc08-584c2. 13 Juni 16:35:54 tecmint systemd[1]: Ketergantungan gagal untuk Swap. 13 Juni 16:35:54 tecmint systemd[1]: swap.target: Job swap.target/start gagal dengan hasil 'ketergantungan'. 13 Juni 16:35:54 tecmint systemd[1]: dev-disk-by\x2duuid-53e41ce9\x2ddc18\x2d458c\x2dbc08\x2d584c208ed615. 13 Juni 16:35:54 tecmint systemd[1]: dev-disk-by\x2duuid-53e41ce9\x2ddc18\x2d458c\x2dbc08\x2d584c208ed615. 13 Juni 16:35:54 tecmint systemd[1]: Inisialisasi Sistem target tercapai. 13 Juni 16:35:54 tecmint systemd[1]: Memulai Pemeriksaan Acara ACPI. 13 Juni 16:35:54 tecmint systemd[1]: Mendengarkan di CUPS Scheduler. 13 Jun 16:35:54 tecmint systemd[1]: Memulai Pencatatan Startup Sistem Konsol... 13 Jun 16:35:54 tecmint systemd[1]: Memulai Pembersihan Harian Direktori Sementara.
Di atas adalah contoh dari output perintah yang menunjukkan kesalahan yang telah kami identifikasi dengan melihat /var/log/boot.log: kesalahan partisi swap. Untuk melihat lebih banyak jalur keluaran, cukup tekan [Memasuki] tombol.
Lihat juga panduan berguna ini tentang boot sistem Linux dan manajemen layanan dalam kaitannya dengan manajer sistem dan layanan umum:
Pada artikel ini, kami menjelaskan secara singkat berbagai tahapan dalam proses boot sistem Linux serta mempelajari cara membuat dan kemungkinan menyelesaikan masalah boot. Untuk menambahkan pemikiran ke panduan ini, gunakan formulir komentar di bawah.