Komputer desktop saya yang menjalankan Debian Jessie mulai menjatuhkan ke shell mode darurat pada setiap boot. Layar mengatakan digunakan journalctl -xb
untuk menemukan alasannya, dan digunakan systemctl default
untuk melanjutkan booting. Ketika saya menjalankan systemctl default
, sistem terus boot, dan setelah beberapa minggu menggunakan sistem tidak ada yang salah.
Melihat melalui journalctl -xb
, tidak ada yang menonjol sebagai alasan untuk jatuh ke shell darurat. Apakah ada cara mudah untuk menentukan dengan tepat alasan mengapa ia memutuskan untuk masuk ke mode darurat? Apakah ada opsi flag atau bootup lain yang akan memperjelas di mana masalahnya?
debian
systemd
systemd-journald
jordanm
sumber
sumber
journalctl -xb
ketika itu terjadi?systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M
untuk detail level forensik ...Jawaban:
Kegagalan seharusnya menunjukkan warna merah
[ FAIL ]
pada konsol (bukan[ OK ]
), dengan deskripsi unit di sebelahnya. Biasanya kegagalan pertama adalah yang paling penting. Gunakan shift + pageup pada konsol untuk menggulir ke atas dan melihat beberapa layar penuh keluaran. Ini mungkin tidak berfungsi jika ada terlalu banyak output.Ini berfungsi bahkan jika Anda biasanya tidak melihat
[ OK ]
pesan, misalnya karenaquiet
pada baris perintah kernel seperti yang digunakan oleh Debian. Pada kegagalan pertama, systemd beralih ke mode verbose.Kalau tidak, Anda bisa menggunakan
systemctl
. Tanpa opsi apa pun, ini menunjukkan daftar besar unit yang diketahui dengan kegagalan disorot dalam warna merah. Untuk menampilkan yang gagal saja, gunakansystemctl --state=failed
atausystemctl --failed
.Jika Anda mencari melalui file unit, hanya ada beberapa cara untuk boot kembali
emergency.target
. Biasanya ketika.mount
unit untuk sistem file lokal gagal, menyebabkanlocal-fs.target
gagal. Atau ketika initramf Anda gagal me-mount filesystem root, jika initramf Anda menggunakan systemd.local-fs.target
telahOnFailure=emergency.target
. Dan itu gagal karena unit untuk sistem file lokal secara otomatis ditambahkan ke daftar Memerlukan local-fs.target (kecuali jika adaDefaultDependencies=no
).sumber
Sesekali saya mengalami prompt "mode pemeliharaan", dan saya juga harus menelusuri journald untuk mencari kesalahan. Karena jurnalctl menggunakan lebih sedikit sebagai pager, Anda harus dapat menerapkan pintasan yang kurang untuk pencarian Anda.
Biasanya, saya akan bergantung pada fungsi pencarian (/) dan mencari sesuatu yang setara dengan "kesalahan", "peringatan", atau "gagal". Dan pastikan -i untuk memaksa pencarian case sensitif.
Jadi penekanan tombol saya akan cenderung terlihat seperti:
Secara teknis ini bukan pencarian yang lengkap atau tepat untuk masalah yang tepat, tetapi saya tidak pernah melewatkan masalah boot dengan cara ini.
Beberapa pintasan keyboard yang kurang terkait di bawah ini:
http://www.thegeekstuff.com/2010/02/unix-less-command-10-tips-for-effective-navigation/
sumber
systemd
akan mencatat pesan merah karena kegagalan untuk memulai unit layanan, atau lebih penting lagi kegagalan untuk memasang sistem file.