Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

ENOSPC_INODES Linux / DevOps

Ошибка No space left on device при свободном месте: кончились inode (df -i)

Обновлено: 27.08.2026 · Официальная документация ↗

Симптомы парадоксальной ошибки нехватки места

При попытке создать или сохранить файл система выдает критическую ошибку:

No space left on device (Ошибка: На устройстве не осталось свободного места)

Однако при проверке свободного пространства командой df -h вы видите, что свободно еще 20–100 Гигабайт.

Причина: исчерпание таблицы индексных дескрипторов (Inode)

В файловой системе Linux каждый файл, папка или символическая ссылка занимают один дескриптор — inode. Если на сервере сгенерировались миллионы крошечных файлов (файлы сессий PHP, почтовая очередь, кэш), счетчик свободных inode достигает 100%, и новые файлы создать нельзя.

  1. Проверьте занятость inode:
    df -i
    Найдите раздел с IUse% = 100%.
  2. Найдите папку, в которой скопились миллионы мелких файлов, запустив сканирование:
    sudo find / -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n | tail -n 15
  3. Чаще всего виновниками являются:
    • /var/lib/php/sessions/ (зависшие сессии PHP);
    • /var/spool/postfix/maildrop/ (застрявшие системные письма);
    • /tmp или папка кэша фреймворка.
  4. Удалите скопившиеся миллионы файлов (через быстрый find, так как команда rm выдаст ошибку Argument list too long):
    sudo find /var/lib/php/sessions/ -type f -delete

Профилактика: Настройте автоматическую ротацию сессий и логов, чтобы предотвратить повторное переполнение inode.

💡 Практика специалистов: Самая частая причина исчерпания inode на сайтах WordPress и Laravel — это брошенные без ротации папки кэша картинок (thumbnails) и сессий в /tmp. Добавляйте регулярную очистку по крону.

Частые вопросы (FAQ)

Можно ли увеличить количество inode без переформатирования диска?

В файловой системе ext4 количество inode задается жестко один раз в момент создания файловой системы (mkfs). Увеличить их «на лету» нельзя — можно только удалить ненужные файлы.

Почему команда rm * выдает ошибку Argument list too long?

Потому что командная оболочка Bash не может обработать список из сотен тысяч файлов в одном аргументе. Используйте команду find /путь -type f -delete.

Как узнать размер одного inode?

Выполните sudo tune2fs -l /dev/sda1 | grep 'Inode size'. Стандартный размер обычно равен 256 байт.

В каких файловых системах нет фиксированного лимита inode?

Современные файловые системы XFS, Btrfs и ZFS выделяют inode динамически по мере необходимости.

Полезные материалы
Рекомендуем