Tidak ada lagi boot logging sejak 16.04?

23

Saya perhatikan bahwa /var/log/boot.logfile saya memiliki tanggal 2016-04-22, terakhir kali saya boot di 15.10. Di mana boot.logfile Xenial berada?

melati
sumber
Apakah pertanyaan sebenarnya tidak masuk, tetapi melihat apa yang memperlambat boot. Sekarang Anda menggunakan systemd-analyze blamedan / atau systemd-analyze critical-chain . Saya menemukan itu lebih mudah daripada menggali melalui file log untuk menemukan apa yang menyebabkan masalah.
oldfred
jadi, tidak ada yang bisa mengatakan mengapa boot.log diadakan pada 2016-04-22 ...? SANGAT?
jasmines
1
@jasmines: Sayangnya kami tidak dapat memberi tahu Anda mengapa ini terjadi ... kami bukan pengembang ... Saya memperbarui jawaban saya dengan beberapa informasi baru mulai hari ini ... Anda harus mempertimbangkan untuk mengajukan laporan bug pada Launchpad. :)
cl-netbox
2
journalctl tidak menunjukkan apa yang saya lihat di splash saat boot, dan saya membutuhkannya
jasmines
1
log yang terlihat bagus dengan "[GAGAL]" berwarna merah, apakah Anda berhasil mendapatkannya lagi? file saya dari 2017 ...
Aquarius Power

Jawaban:

33

Menggunakan journalctl

Karena journaldberisi semua log, Anda dapat menggunakan journalctlperintah dengan filter yang sesuai. Dalam hal boot.log, yang digunakan untuk memuat pesan dari sistem init, Anda dapat melakukan:

journalctl -b0 SYSLOG_PID=1
  • -b0menampilkan pesan dari boot saat ini, -b1dari boot sebelumnya, dan sebagainya. Tanpa -bopsi, journalctlakan menampilkan pesan dari awal log.
  • SYSLOG_PID memfilter pesan dari PID 1, alias init.

Atau:

journalctl -b0 --system _COMM=systemd
  • _COMM=systemdmencari pesan dari systemdperintah. Karena systemdinit, inilah yang kami minati.
  • --system memfilter pesan dari log sistem, bukan log sesi pengguna.

Contoh:

muru@muru-vm:~$ journalctl -b0 SYSLOG_PID=1
Apr 30 12:29:18 muru-vm systemd[1]: systemd 229 running in system mode. (+PA
Apr 30 12:29:18 muru-vm systemd[1]: Detected virtualization qemu.
Apr 30 12:29:18 muru-vm systemd[1]: Detected architecture x86-64.
Apr 30 12:29:18 muru-vm systemd[1]: Set hostname to <muru-vm>.
Apr 30 12:29:18 muru-vm systemd[1]: Initializing machine ID from random gene
Apr 30 12:29:18 muru-vm systemd[1]: Installed transient /etc/machine-id file
Apr 30 12:29:18 muru-vm systemd[1]: Set up automount Arbitrary Executable Fi
Apr 30 12:29:18 muru-vm systemd[1]: Listening on fsck to fsckd communication
Apr 30 12:29:18 muru-vm systemd[1]: Reached target User and Group Name Looku
Apr 30 12:29:18 muru-vm systemd[1]: Listening on udev Kernel Socket.
Apr 30 12:29:18 muru-vm systemd[1]: Started Forward Password Requests to Wal
Apr 30 12:29:18 muru-vm systemd[1]: Listening on /dev/initctl Compatibility 
Apr 30 12:29:18 muru-vm systemd[1]: Listening on Journal Socket.
Apr 30 12:29:18 muru-vm systemd[1]: Created slice User and Session Slice.
Apr 30 12:29:18 muru-vm systemd[1]: Created slice System Slice.
Apr 30 12:29:18 muru-vm systemd[1]: Starting Braille Device Support...
Apr 30 12:29:18 muru-vm systemd[1]: Mounting POSIX Message Queue File System
Apr 30 12:29:18 muru-vm systemd[1]: Mounting Debug File System...
Apr 30 12:29:18 muru-vm systemd[1]: Mounting Huge Pages File System...
Apr 30 12:29:18 muru-vm systemd[1]: Starting Load Kernel Modules...
Apr 30 12:29:18 muru-vm systemd[1]: Starting Uncomplicated firewall...
Apr 30 12:29:18 muru-vm systemd[1]: Starting Create list of required static 
lines 1-23

journalctlmembuka log dalam pager secara default, jadi Anda tidak perlu melakukan pipe less.


Penebangan terus-menerus

Ubuntu, secara default, tidak mengaktifkan log jurnal journald persisten. Berkat komentar oleh @ Auspex , Anda perlu melakukan salah satu dari:

  1. Edit /etc/systemd/journald.confuntuk menyertakan:

    Storage=persistent
    
  2. Buat /var/log/journaldirektori secara manual:

    mkdir /var/log/journal
    systemd-tmpfiles --create --prefix /var/log/journal
    systemctl restart systemd-journald
    

Terkait:

muru
sumber
1
journalctl tidak menunjukkan apa yang saya lihat di splash saat boot, dan saya membutuhkannya
jasmines
1
Saya melihat apa yang telah login boot.log sebelumnya, format itu: [OK] Memulai Daemon Self Monitoring and Technology Reporting (SMART). Memasang Format File Sistem File yang Dapat Dilakukan Sewenang-wenang ... [OK] Memulai Layanan Login. Memulai LSB: Mulai daemon NTP ... [OK] Memulai Avahi mDNS / DNS-SD Stack. [OK] Mulai Jadikan printer CUPS jarak jauh tersedia secara lokal. [OK] Memulai Manajer Modem. [OK] Memulai Network Manager. Memulai Network Manager, Tunggu Daring ... [OK] Mencapai Jaringan target. [OK] Memulai Layanan Akun. dan seterusnya ...
jasmines
1
Jaga nada dan kata-kata Anda tetap baik. Ada kebijakan yang baik . Ikuti itu.
Seth
1
journalctl -bX tidak ada gunanya untuk ini, id tidak mengandung pesan yang benar-benar muncul di layar saat boot, hanya boot.log yang berfungsi dan kadang-kadang hanya pada 16.04, satu-satunya cara adalah mengambil foto atau menuliskannya. Saya memiliki masalah yang sama.
Mike
1
Seperti yang telah disebutkan oleh jasmines, pesan boot dimulai dengan [OK] ... hal ini ada di boot.log tetapi di journalctl sedikit berbeda, bahkan ketika menggunakan flag seperti -b0 SYSLOG_PID = 1 atau -b1 untuk boot sebelumnya, tidak semuanya di sana, kesalahan khusus yang saya temui dan saya tidak dapat menemukan tempat di log. Sebagian besar pesan ada di sana, saya tidak tahu bagaimana mereproduksi masalah ini jadi saya tidak bisa membantu, tapi itu kesalahan dengan kernel dan tidak ditemukan, masalah menghilang sekarang, tapi saya masih tidak melihat alasan mengapa boot pesan tidak dicatat persis seperti yang muncul di layar.
Mike
3

Saya telah melalui beberapa laporan bug dan perhatikan dalam satu ini: https://bugs.launchpad.net/ubuntu/+source/ubuntu-gnome-default-settings/+bug/1536771 bahwa Plymouth sebenarnya menulis untuk boot.log.

Jika Anda melihat https://launchpadlibrarian.net/257898272/plymouth-debug.log dan mencari di 'boot.log' di browser Anda, Anda mendapatkan baris berikut:

[main.c:821] on_system_initialized:system now initialized, opening log 
[main.c:742] get_log_file_for_state:returning log file '/var/log/boot.log'
[main.c:805] prepare_logging:opening log '/var/log/boot.log'

Saya tidak mengerti bagaimana internal Plymouth bekerja, tetapi karena bertanggung jawab atas layar splash yang muncul sebelum layar masuk, saya hanya dapat berasumsi bahwa jika tidak ada layar splash (layar hitam) sebelum masuk ke layar masuk , file tidak diubah. Jika Anda memiliki layar splash yang ditampilkan sebelum layar login, output proses boot diarahkan ke file boot.log.

octoquad
sumber
Sayangnya, saya memang punya splash, tetapi tidak ada boot.log ...
jasmines
1
Saya menegaskan bahwa ketika mengkonfigurasi GRUB_CMDLINE_LINUX_DEFAULT=""di /etc/default/grubdaripada boot.logtidak ditulis. Saat menggunakan GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"daripada boot.logditulis lagi. Saya menggunakan Ubuntu 19.04.
adrhc
2

Di Ubuntu 16.04 boot.logfile tersebut masih terletak di /var/logfolder seperti yang Anda lihat di sini . File boot dari hari ini (2016-04-29). Mungkin ada yang salah ketika Anda menginstal Ubuntu 16.04 atau telah meningkatkan sistem operasi dari Ubuntu 15.10 ke Ubuntu 16.04 LTS.

Atau Anda dapat memeriksa perilaku boot umum dari kern.logfile komprehensif . Alternatif lain yang mungkin dilakukan adalah dengan mengkonfigurasi daemon syslog secara manual untuk menghasilkan file log boot dan berikut ini adalah tutorial bagaimana tepatnya melakukan ini: Cara Melihat dan Mengkonfigurasi Linux Logs

Informasi tambahan :

Saya menyelidiki perilaku boot logging pada dua mesin yang berbeda. Pada komputer dengan BIOS berbasis UEFI boot.logfile ada - tetapi pada komputer dengan BIOS berbasis warisan sepertinya tidak ada sama sekali. Jadi jika sistem diinstal dalam mode BIOS lama (MBR / msdos), ini bisa menjadi penjelasan mengapa boot.logfile Anda bertanggal dari 2016-04-22, itu adalah sisa dari Ubuntu 15.10.

Informasi terbaru 2016-05-02:

Saya terus menyelidiki perilaku file boot logging dan mengamati bahwa boot.logfile tersebut masih ada di mesin berbasis UEFI, tetapi sejak beberapa hari file tersebut kosong. Alternatif lain yang saya coba lihat apa yang terjadi selama proses boot, adalah menginstal BootChart , tetapi bootchart.pngtidak ada dalam /var/logfolder seperti yang diharapkan setelah me-reboot sistem ... hanya ada /var/log/bootchartfolder kosong yang juga tidak mengandung bootchart.pngfile yang diharapkan .

Informasi terbaru 2016-05-04:

Hari ini boot.logfile tersebut sepertinya memiliki "fungsionalitas" lagi, itu diisi dengan informasi parsial dari proses boot. Tampaknya perilaku berubah secara acak, yang saya pikir tidak dapat diselesaikan di sini di Tanya Ubuntu - jadi Anda harus mempertimbangkan untuk mengajukan laporan bug di Launchpad untuk menyelesaikan masalah ini!

Kesimpulan - setelah satu minggu menyelidiki boot.logperilaku file di Ubuntu 16.04: Anda tidak perlu khawatir /var/log/boot.loglagi dan terbiasa journalctlsaja.

cl-netbox
sumber
jangan berpikir ada yang tidak beres, toh saya ingin menerima jawaban Anda jika Anda dapat menambahkan saran tentang cara mengatasi masalah saya ...
jasmines
Mencoba mengkonfigurasi daemon syslog secara manual untuk menghasilkan file log boot setelah tutorial. Saya menambahkan # Simpan pesan boot juga ke boot.log local7. * /Var/log/boot.log ke file /etc/rsyslog.d/50-default.conf saya tidak berhasil, /var/log/boot.log masih 2016-04-22
jasmines
Pada instalasi baru saya Ubuntu 16.04 saya juga menemukan bahwa boot.logfile tersebut tidak di lokasi yang biasa.
@ParanoidPanda: Pada kedua mesin yang disebutkan saya melakukan instalasi bersih / segar (bukan upgrade) dari Ubuntu 16.04 LTS - sepertinya cara boot logging sebelumnya tidak didukung dengan benar lagi. :)
cl-netbox
1
journalctl tidak menunjukkan apa yang saya lihat di splash saat boot, dan saya membutuhkannya
jasmines