Як точно визначити, чому Systemd переходить в аварійний режим


10

Мій настільний комп'ютер під керуванням Debian Jessie почав переходити в режим аварійного режиму при кожному завантаженні. На екрані написано використовувати journalctl -xbдля пошуку причини та використання systemctl defaultдля продовження завантаження. Коли я виконую systemctl default, система продовжує завантажуватися, і через пару тижнів користування системою нічого, мабуть, не так.

Подивившись journalctl -xb, ніщо не виділяється як причина для потрапляння до аварійного снаряда. Чи є простий спосіб точно визначити причину, коли він вирішив перейти в аварійний режим? Чи є інші прапори або параметри завантаження, які дозволять зрозуміти, де проблема?


2
Це має бути видно в журналі, але з обмеженою інформацією, яку ви надаєте, немає ніякого способу навести вас. У вас є копія, journalctl -xb коли це сталося?
Джулі Пелтьє,

3
Завантажте в режимі детального ведення журналу systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1Mдля деталізації криміналістичного рівня ...
jasonwryan

2
Існуючі колоди вже повинні дати вам причину. Причин так багато, що здогадуватися дуже важко.
Джакомо Катенацці

1
У мене така ж проблема в екземплярі Ubuntu 16.04. Встановлювали, використовували, ремонтували багато систем Linux протягом останніх 20 років. Нічого особливого на екрані, і цього разу нічого не виділяється в журналах. Екран каже, що Ctrl-D продовжує завантажувати, але це лише через мить повернеться до того самого підказу. Без підказки. Розчарування, чи не так?
Стефан Гурішон

Ви спробували всі кроки з розділу "Діагностування проблем із завантаженням" у налагодженні systemd ?
Siosm

Відповіді:


6

Збій повинен був показати червоний колір [ FAIL ]на консолі (замість [ OK ]), а з ним опис пристрою. Зазвичай перші невдачі є найважливішими. Використовуйте shift + pageup на консолі, щоб прокрутити вгору і переглянути останні кілька екранів виводу. Це може не спрацювати, якщо надто багато виводу.

Це працює, навіть якщо ви зазвичай не бачите [ OK ]повідомлень, наприклад, через quietкомандний рядок ядра, як використовується Debian. При першому збої systemd переходить у багатослівний режим.

В іншому випадку можна використовувати systemctl. Без будь-яких варіантів він показує масивний список відомих одиниць із відмовами, виділеними червоним кольором. Щоб показати лише невдалі, використовуйте systemctl --state=failedабо systemctl --failed.


Якщо ви шукаєте файли одиниць, то завантаження завантажується лише дуже мало emergency.target. Зазвичай це відбувається, коли .mountмодуль локальної файлової системи виходить з ладу, викликаючи local-fs.targetзбій. Або коли ваш initramfs не зможе встановити кореневу файлову систему, якщо ваш initramfs використовує systemd.

local-fs.targetмає OnFailure=emergency.target. І це виходить з ладу, тому що одиниці для локальних файлових систем автоматично додаються до списку Потрібні local-fs.target (якщо вони не є DefaultDependencies=no).

$ systemctl show --property Requires local-fs.target
Requires=-.mount home.mount boot.mount boot-efi.mount

2

Час від часу я стикаюсь із підказкою "режим обслуговування", і мені доводиться також прокручувати журнал для помилок. Оскільки journalctl використовує менше як пейджер, ви маєте змогу застосувати будь-які менш ярлики до пошуку.

Як правило, я б покладався на функцію пошуку (/) і шукав би щось, що еквівалентно "помилка", "попередження" або "помилка". І переконайтеся, що -и, щоб змусити нечутливий пошук.

Тож мої натискання клавіш, як правило, виглядають так:

-i (case insensitive)
g (move to start)
/error
nnnn (skip through results)
g (move to start)
/fail
nnnn (skip through results)
g (move to start)
/warn
nnnn (skip through results)

Це технічно не є вичерпним або точним пошуком точної проблеми, але я ніколи не пропускав питання завантаження таким чином.

Нижче наведено деякі пов’язані із меншими комбінаціями клавіш:

http://www.thegeekstuff.com/2010/02/unix-less-command-10-tips-for-effective-navigation/


Я вважаю, що також має бути можливість швидко перегортати сторінки та шукати червоні повідомлення (LOG_ERR та вище). systemdбуде записувати червоні повідомлення про помилки в запуску сервісного блоку або, що ще важливіше, невдача монтажу файлової системи.
sourcejedi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.