Rain Wiki · Linux

Иноды и ошибка «No space left on device»

Что такое инод, как посмотреть использование инодов с помощью df -i и как найти директории с миллионами мелких файлов.

Linux · Rain Wiki

Инод (inode) — это структура данных, которую файловые системы в стиле Unix используют для хранения информации о файле, такой как владелец, права доступа, размер и расположение данных. Каждый файл использует один инод, а во многих файловых системах их количество фиксировано, поэтому миллионы крошечных файлов могут вызвать ошибку «No space left on device», даже если df -h показывает наличие свободного места.

Как это проверить

Команда 'df -i' выводит общее количество, использованные и свободные иноды для каждой файловой системы. 'ls -i' показывает номер инода файла, а 'stat <file>' — подробную информацию о нем.

Типичные причины

Директории сессий или кэша веб-приложений, очереди почтовых сообщений, неротированные мелкие лог-файлы и кэши сборок могут создавать миллионы файлов.

Поиск директории

GNU du умеет считать иноды: 'du --inodes -x / | sort -n | tail' выводит директории с наибольшим количеством записей.

Как исправить исчерпание инодов

  1. Подтверждение: df -i (IUse% близко к 100%).
  2. Поиск директории: sudo du --inodes -x --max-depth=3 / | sort -n | tail -20
  3. Прежде чем что-либо удалять, проверьте, какой процесс создает эти файлы.
  4. Удалите старые файлы приложения с помощью его собственных инструментов или команды find, например: find /path -type f -mtime +7 -delete после предварительного запуска без ключа -delete.

Осторожно

  • Всегда сначала запускайте find без -delete и просматривайте список.
  • Количество инодов в ext4 фиксируется при создании файловой системы.

Источники

Обновлено: 2026-10-08

Связанные статьи