No space left on device, а место на диске есть: кончились inodes
Место на диске есть, а файлы не создаются. Значит, кончились inodes — записи, которые нужны каждому файлу. Найдите папку с огромным числом мелких файлов и очистите её.
Содержание 7
Что случилось
Для каждого файла и папки система заводит на диске служебную запись — inode. Сколько таких записей будет, решается при создании диска, и потом их число не меняется. Если на диске миллионы крошечных файлов, записи кончаются раньше места. Новый файл создать уже нельзя, и программы получают ту же ошибку, что и при полном диске:
No space left on deviceШаг 1. Проверьте inodes
Команды на этой странице вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне.
df -iПример ответа (строки tmpfs пропущены):
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/vda1 1310720 1310720 0 100% /Inodes— сколько записей всего.IUsedиIFree— сколько занято и свободно.IUse%— сколько занято в процентах.
Если в строке главного диска / колонка IUse% показывает 100%, причина найдена. Если нет — проверьте ещё раз место командой df -h: возможно, заполнен другой диск. Как с этим быть, рассказано на странице No space left on device.
Шаг 2. Найдите папку с лишними файлами
Команда du умеет считать не размер, а число файлов. Начните с корня диска:
sudo du --inodes -x -d1 / 2>/dev/null | sort -nЕсли система спросит пароль, введите пароль своего пользователя на сервере. Символы при вводе не видны — так и должно быть: наберите пароль и нажмите Enter. Подсчёт может занять несколько минут.
Внизу списка — папки с наибольшим числом файлов. Загляните в верхнюю из них той же командой, например:
sudo du --inodes -x -d1 /var 2>/dev/null | sort -nСпускайтесь так, пока не найдёте папку, где лежат сотни тысяч или миллионы файлов. Это может быть кеш сайта, файлы сессий PHP, временные файлы, очередь писем.
Шаг 3. Удалите лишние файлы
Кеш сайта лучше очистить средствами самого сайта: в админке CMS есть кнопка очистки кеша. Если сайт не открывается, кеш можно удалить командой. Пример для папки кеша сайта /var/www/example.com/cache:
sudo find /var/www/example.com/cache -type f -deleteПодставьте свою папку и перепроверьте путь перед нажатием Enter. Команда удаляет все файлы внутри папки, сама папка останется.
Команда rm * в папке с миллионами файлов не сработает: она ответит Argument list too long — список файлов не помещается в одну команду. Поэтому используйте find.
Как проверить
df -i /В колонке IUse% должно стать меньше 100%. Затем перезапустите службы, которые падали, и найдите программу, которая наплодила файлы: иначе через какое-то время они накопятся снова. Для кеша и сессий бывает нужна настройка их автоочистки.
Источники
- Исходный код glibc 2.39: errlist.h — тексты системных ошибок: No space left on device, Read-only file system, Cannot allocate memory.
- Исходный код coreutils 9.4: df.c — колонки в выводе df.
- Исходный код coreutils 9.4: du.c — параметры --inodes, -d и -x.
- Справка df(1) в Ubuntu 24.04 — параметры -h и -i.
- Справка du(1) в Ubuntu 24.04 — параметры -h, -d, -x и --inodes.
- Справка find(1) в Ubuntu 24.04 — параметры -type и -delete.
Сверено 10 октября 2026 года.
Что почитать дальше
Проверено и обновлено: 10.10.2026