Журнал пропадает после перезагрузки
По умолчанию в части дистрибутивов журнал живёт в /run и исчезает при перезагрузке. Тогда разобрать аварию, после которой машину перезагрузили, невозможно — записей просто нет.
Вероятные причины
По порядку: сверху то, что встречается чаще.
-
Постоянное хранение не включено
Журнал пишется в /run/log/journal — это память. При перезагрузке всё стирается.
-
Журнал ограничен по размеру и старые записи вытеснены
Предел размера заставляет журнал удалять старые записи. При болтливой службе это происходит за часы.
-
Ищете не ту загрузку
По умолчанию journalctl показывает все записи, но при разборе часто нужна конкретная загрузка. Список загрузок доступен отдельной командой.
Диагностика
Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.
Сохранились ли записи прошлых загрузок.
journalctl --list-boots | tail -5Сколько места занимает журнал.
journalctl --disk-usageГде журнал хранится фактически.
ls -ld /var/log/journal /run/log/journal 2>/dev/nullРешение
Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.
- Почему происходит
- Журнал пишется в /run/log/journal — это память. При перезагрузке всё стирается.
- Как проверить
-
Посмотрите, есть ли каталог постоянного хранения, и что говорит настройка.
ls -ld /var/log/journal 2>/dev/null || echo "постоянного хранения нет" grep -i "^Storage" /etc/systemd/journald.conf
- Как исправить
-
Создайте каталог и перезапустите службу журнала: дальше записи будут сохраняться между загрузками.
sudo mkdir -p /var/log/journal && sudo systemd-tmpfiles --create --prefix /var/log/journal && sudo systemctl restart systemd-journald
- Почему происходит
- Предел размера заставляет журнал удалять старые записи. При болтливой службе это происходит за часы.
- Как проверить
-
Посмотрите занятое место и пределы.
journalctl --disk-usage grep -iE "SystemMaxUse|MaxRetentionSec" /etc/systemd/journald.conf
- Как исправить
-
Поднимите предел или ограничьте болтливую службу через
LogRateLimitBurst=иLogLevelMax=.
- Почему происходит
- По умолчанию journalctl показывает все записи, но при разборе часто нужна конкретная загрузка. Список загрузок доступен отдельной командой.
- Как проверить
-
Посмотрите список загрузок.
journalctl --list-boots | tail -5
- Как исправить
-
Указывайте загрузку явно:
journalctl -b -1для предыдущей.
Пример вывода
Записей прошлых загрузок нет. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.
$ journalctl --list-boots
0 3f2a... Mon 2026-09-15 08:00:02 MSK—Mon 2026-09-15 21:12:41 MSK
$ ls -ld /var/log/journal
ls: cannot access '/var/log/journal': No such file or directory
Связанные ошибки
- No space left on device в журнале службы Нет места на устройстве: разбор по свободным блокам, по inode, по журналу systemd и по удалённым, но открытым файлам.
- Failed to start … — что делать с общим сообщением Строка Failed to start сообщает только факт. Порядок разбора: найти настоящую причину выше по журналу.
- В журнале нет сообщений об ошибке, хотя служба падает Ошибки не видны: уровень подробности обрезан параметрами unit-файла или настройками журнала.
- File corrupted or uncleanly shut down, renaming and replacing Журнал повреждён после жёсткой перезагрузки: что означает сообщение и когда нужно вмешательство.
- Invalid argument в журнале службы Ошибка 22: недопустимый аргумент системного вызова. Как сузить поиск, когда сообщение ничего не уточняет.
- Job for myapp.service failed: с чего начинать разбор Сообщение systemctl при неудачном запуске: что в нём есть, чего в нём нет и какие три команды дают ответ.
- Suppressed N messages from unit: часть записей потеряна journald отбросил часть записей из-за ограничения частоты. Как понять, что именно потеряно, и когда предел нужно поднять.
- Tainted в сообщениях ядра: что это значит при разборе сбоя Метка Tainted рядом с сообщением ядра: откуда берётся, на что влияет и почему её стоит учитывать.
Источники
-
journald.conf(5)
Storage=, SystemMaxUse= и хранение журнала. -
Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
Проверено на системе без /var/log/journal: после перезагрузки прежние записи недоступны.