Что означает ошибка J001
Ошибка J001 — это условный код, используемый в этой статье для обозначения распространенных проблем с journalctl. Она может проявляться как:
No files found— journald не может найти файлы журнала.Permission denied— недостаточно прав для чтения логов.No logs to show— запрос не вернул результатов даже при корректных параметрах.
Эти сообщения обычно появляются, когда journalctl не может прочитать или отфильтровать данные в режиме реального времени, хранящиеся в /var/log/journal.
Причины возникновения
- Отсутствие директории журнала –
/var/log/journalудалена или не существует. - Неправильные права доступа – пользователь
systemdилиrootне может читать файлы журнала. - Повреждение файлов журнала – файлы
.journalповреждены или имеют неподдерживаемый формат. - Неправильные параметры фильтрации – используются некорректные единицы измерения, даты или сервисы.
- Ограничения дискового пространства – журнал автоматически очищается, если диск переполнен.
- Сервис journald не запущен – процесс
systemd-journaldостановлен или завис.
Способы решения
Способ 1: Проверьте наличие и права доступа к журналам
Сначала убедитесь, что директория журналов существует и содержит файлы.
ls -la /var/log/journal
Если директория отсутствует, создайте ее:
sudo mkdir -p /var/log/journal
sudo chown -R systemd:systemd /var/log/journal
sudo chmod 755 /var/log/journal
Способ 2: Перезапустите systemd-journald
Иногда сервис зависает и прекращает запись логов.
sudo systemctl restart systemd-journald
После перезапуска проверьте, появились ли новые записи:
journalctl -b -1 | head
Способ 3: Принудительно запишите буфер в файл
Если файл журнала не записывается на диск, используйте --flush и --sync.
sudo journalctl --flush --sync
Теперь попробуйте прочитать логи только с диска:
sudo journalctl --disk-only -u systemd
Способ 4: Используйте альтернативный метод фильтрации
Если обычный запрос journalctl не возвращает результатов, попробуйте более точные фильтры:
journalctl _SYSTEMD_UNIT=ssh.service --since="2026-01-01"
Вы также можете объединить несколько параметров:
journalctl -b -1 -u NetworkManager -p err
Способ 5: Чтение файлов журнала напрямую
Когда journald серьезно поврежден, скопируйте файлы .journal на рабочую станцию и используйте journalctl для их анализа.
# Скопируйте файлы на локальную машину (пример для Ubuntu)
scp user@host:/var/log/journal/*/*.journal ~/journal_backup/
cd ~/journal_backup
for f in *.journal; do
echo "=== $f ==="
sudo journalctl -o short-iso "$f"
done
Профилактика
- Регулярная проверка дискового пространства –
df -h /varи очистка старых журналов командойsudo journalctl --vacuum-time=7days. - Соблюдайте права доступа – убедитесь, что
/var/log/journalпринадлежитsystemd:systemdи имеет права755. - Используйте ротацию логов – включите
LogRotateдля файлов/var/log/journal/*. - Мониторинг целостности – периодически проверяйте файлы журнала с помощью
journalctl --verify. - Резервное копирование – создавайте копии
/var/log/journalперед крупными обновлениями или перезагрузками.
Эти шаги помогут избежать повторного возникновения ошибки J001 и обеспечат стабильную работу journalctl в будущем.