SystemdDoctor
служба не работает диск ресурсы

Место есть, а файлы не создаются: кончились inode

Если команда показывает свободное место, а запись всё равно не проходит с сообщением о нехватке места, почти наверняка исчерпаны inode. Каждый файл, даже пустой, занимает одну запись, и их число задано при создании файловой системы.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Массив мелких файлов

    Кеши, сессии, очереди писем, временные файлы без очистки. Миллион пустых файлов занимает почти нулевое место и миллион записей.

  2. Файловая система создана с малым числом записей

    На разделах под большие файлы число записей иногда задают минимальным. Для каталога с мелкими файлами его не хватает.

  3. Удалённые файлы всё ещё открыты

    Записи освобождаются только после закрытия файла. Процесс, держащий тысячи удалённых файлов, не даёт вернуть записи.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Использование inode по разделам: показатель, который забывают проверять.

df -i

Каталоги с наибольшим числом файлов.

sudo find /var -xdev -type f | cut -d/ -f1-4 | sort | uniq -c | sort -rn | head

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Массив мелких файлов
Почему происходит
Кеши, сессии, очереди писем, временные файлы без очистки. Миллион пустых файлов занимает почти нулевое место и миллион записей.
Как проверить
Посмотрите использование inode и найдите каталог-виновник.
df -i
sudo find /var -xdev -type f 2>/dev/null | cut -d/ -f1-4 | sort | uniq -c | sort -rn | head
Как исправить
Удалите массив файлов и настройте регулярную очистку. Для каталогов службы это удобно делать таймером или средствами самой программы.
2. Файловая система создана с малым числом записей
Почему происходит
На разделах под большие файлы число записей иногда задают минимальным. Для каталога с мелкими файлами его не хватает.
Как проверить
Посмотрите общее число записей.
df -i /var
sudo tune2fs -l /dev/sda2 2>/dev/null | grep -i "inode count"
Как исправить
Число записей менять нельзя: файловую систему придётся создать заново с другими параметрами. Как обход — перенесите массив файлов на отдельный раздел.
3. Удалённые файлы всё ещё открыты
Почему происходит
Записи освобождаются только после закрытия файла. Процесс, держащий тысячи удалённых файлов, не даёт вернуть записи.
Как проверить
Найдите удалённые открытые файлы.
sudo lsof +L1 2>/dev/null | head -20
Как исправить
Перезапустите службу, которая их держит.

Пример вывода

Место есть, записи кончились. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

$ df -h /var
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda2        50G   22G   26G  46% /

$ df -i /var
Filesystem      Inodes   IUsed IFree IUse% Mounted on
/dev/vda2      3276800 3276800     0  100% /

myapp[1200]: error: open /var/lib/myapp/cache/ab12: no space left on device

Связанные ошибки

Источники

  • df(1)
    Использование inode и ключ -i.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено созданием миллиона пустых файлов на тестовом разделе.
    собственная проверка, systemd 255
    сверено 15 сентября 2026