Все об Arch Linux

Arch Linux будет тем, что вы из него сделаете!

journalctl -b: читаем логи после первой загрузки Arch

journalctl -b — команда, которая показывает все сообщения текущей загрузки и помогает за пару минут понять, что пошло не так после установки Arch Linux. Запустил, нашёл ошибки, погуглил — и починил.

Что такое journalctl -b и зачем он нужен

journalctl — утилита для чтения журнала systemd (journald). В Arch Linux это основной способ получить логи: ядро, сервисы, демоны пишут в единый бинарный журнал.

Флаг -b означает «только текущая загрузка». Без него — логи всех загрузок, десятки тысяч строк. С -b — только то, что произошло после последнего включения.

После первой загрузки свежеустановленного Arch это критично: какой сервис упал, поднялась ли сеть, почему чёрный экран. В методике диагностики подход описан шире, здесь — только первые минуты.

Как посмотреть ошибки только этой загрузки

Самый простой способ — запустить команду без аргументов:

journalctl -b

Вывод длинный. Чтобы сразу увидеть ошибки, добавь фильтр по приоритету:

journalctl -b -p err

Это покажет сообщения уровня err и выше. Основные уровни приоритетов (от строжайшего к мягкому):

Уровень Название Что значит
0 emerg Система неработоспособна
1 alert Нужно исправить немедленно
2 crit Критическое состояние
3 err Ошибка
4 warning Предупреждение

Как фильтровать по сервису и приоритету

По конкретному сервису

Сеть не поднялась после установки? Проверяешь NetworkManager:

journalctl -b -u NetworkManager --no-pager

Флаг --no-pager убирает постраничный просмотр — вывод идёт сразу в терминал. Так же проверяются systemd-networkd, sshd, display-manager.

По времени

Знаешь примерное время сбоя — сузь выборку:

journalctl -b --since "10 min ago"
journalctl -b --since "12:00" --until "12:30"

Формат — любой, который понимает systemd: «20 min ago», дата со временем, даже «yesterday».

Только ядро

Проблемы с оборудованием, драйверами, диском попадают в логи ядра. Флаг -k покажет только kernel-сообщения:

journalctl -b -k --no-pager

Это аналог dmesg, но встроен в journalctl. Удобно, когда не распознался диск или Wi-Fi-адаптер.

Как читать вывод и находить проблему

Алгоритм для первых минут:

  1. Обзор ошибок: journalctl -b -p err --no-pager — видно, какие сервисы упали.
  2. Фильтр по подозрительному сервису: journalctl -b -u NetworkManager --no-pager.
  3. Пояснения к ошибке: journalctl -b -u NetworkManager -x — флаг -x добавляет объяснения из каталога systemd.
  4. Следить в реальном времени: journalctl -b -u NetworkManager -f — аналог tail -f.

Если journalctl открывается в less, а нужен весь вывод — --no-pager решает проблему. Можно сохранить в файл:

journalctl -b --no-pager > /tmp/boot.log

Как проверить логи предыдущей загрузки

Чтобы сравнить с прошлой загрузкой, сначала посмотри список:

journalctl --list-boots --no-pager

Каждая строка — загрузка с индексом и датой. -1 — предыдущая, -2 — ещё раньше:

journalctl -b -1 --no-pager
journalctl -b -1 -p err --no-pager

Полезно, когда хочешь понять, было ли так раньше. О первых шагах — в статье про первый час после установки Arch.

Как ограничить размер журнала

Если /var/log/journal существует, Arch хранит логи постоянно — до 10% файловой системы, но не больше 4 ГБ. По умолчанию каталога нет, и логи живут только в оперативной памяти. Диск маленький? Ограничь размер в /etc/systemd/journald.conf:

SystemMaxUse=100M

Затем перезапусти: sudo systemctl restart systemd-journald.

Если журнал раздулся — почисти: sudo journalctl --vacuum-size=100M. Актуально, если система не грузится после установки.

Частые вопросы

Почему journalctl показывает только ошибки, а я хочу всё

Флаг -p err фильтрует по приоритету. Убери его — получишь полный вывод, но он огромный. Лучше сужай по времени (--since) или по сервису (-u).

journalctl -b и dmesg — в чём разница

-k в journalctl показывает только kernel-сообщения, как и dmesg. Но journalctl работает с постоянным журналом и фильтрует по загрузке, времени и приоритету, а dmesg — кольцевой буфер ядра без истории.

Как посмотреть логи, если Arch не загружается вообще

Загрузись с live-USB, примонтируй корневой раздел в /mnt и посмотри журнал оттуда:

journalctl -D /mnt/var/log/journal -e

Флаг -D указывает альтернативную директорию с журналом — работает, даже если systemd не запущен.

journalctl -b выдаёт пустой вывод. Что не так

Проверь, существует ли /var/log/journal/. Если нет — Arch работает в режиме Storage=auto и хранит логи только в оперативной памяти. Создай директорию:

sudo mkdir -p /var/log/journal
sudo systemctl restart systemd-journald

После этого логи начнут сохраняться постоянно.

Как убрать лишние сообщения из вывода

Баннер и мусорные строки убирает --no-hostname: journalctl -b --no-hostname -p err --no-pager. Строки короче, читать удобнее.

Заключение

journalctl -b — первое, что стоит запустить после первой загрузки Arch Linux. Фильтры по приоритету (-p), сервису (-u), времени (--since) и ядру (-k) помогут найти причину проблемы за минуты. Ошибки уровня err и выше — отправная точка диагностики. Научись читать journalctl — и большинство проблем решатся за минуты.

Полезные ресурсы



Не получилось? Поможем настроить

Задай вопрос в чате — отвечаем быстро, по делу и без воды.

Читайте также

Комментарии

Загрузка…

Откроется GitHub: создайте новый issue с вашим комментарием (кнопка «Submit new issue»). После отправки обновите эту страницу — комментарий появится ниже.

Telegram Max