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-адаптер.
Как читать вывод и находить проблему
Алгоритм для первых минут:
- Обзор ошибок:
journalctl -b -p err --no-pager, видно, какие сервисы упали. - Фильтр по подозрительному сервису:
journalctl -b -u NetworkManager --no-pager. - Пояснения к ошибке:
journalctl -b -u NetworkManager -x: флаг-xдобавляет объяснения из каталога systemd. - Следить в реальном времени:
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, и большинство проблем решатся за минуты.
Полезные ресурсы
- Systemd/Journal, ArchWiki: полная документация по journalctl, фильтрам и настройке журнала
- Journald, ArchWiki: архитектура и конфигурация systemd-journald
- systemd-boot vs GRUB: второе ядро, загрузчики и ядра: что выбрать
- fstab: поля на практике: как работает fstab и что в нём менять
Не получилось? Поможем настроить
Задай вопрос в чате — отвечаем быстро, по делу и без воды.

Комментарии