Linux ENOSPCВысокая

Ошибка No space left on device (ENOSPC) в Linux — причины и решение

Ошибка ENOSPC (No space left on device) возникает, когда на диске заканчивается свободное место. В статье описаны причины появления ошибки, способы диагностики и методы освобождения дискового пространства.

Обновлено 13 февраля 2026 г.
15-45 мин
Средняя
FixPedia Team
Применимо к:UbuntuDebianCentOSRHEL

Ошибка No space left on device (ENOSPC) в Linux

Что означает ошибка ENOSPC

Ошибка No space left on device (код ошибки ENOSPC) — это стандартная ошибка в системах Linux, которая возникает при попытке записи данных на диск, когда на нём закончилось свободное место. Аббревиатура ENOSPC расшифровывается как Error NO Space PaCe — «нет места на устройстве».

Эта ошибка может появиться в любой ситуации, связанной с записью на диск: при установке программ, создании файлов, обновлении системы или работе баз данных.

Причины возникновения ошибки

Существует несколько основных причин появления ошибки ENOSPC:

  1. Физическое заполнение диска — на разделе действительно не осталось свободного места.
  2. Исчерпание inodes — на диске закончились файловые дескрипторы (иноды), даже если есть свободное место.
  3. Квоты пользователей — для учётной записи пользователя или группы установлена квота на дисковое пространство.
  4. Переполнение временных директорий — директории /tmp или /var/tmp забиты временными файлами.

Диагностика проблемы

Проверка использования дискового пространства

Первым делом проверьте, сколько места доступно на дисках:

df -h

Результат покажет использование всех смонтированных разделов:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       100G   95G   5G  95% /
/dev/sdb1       500G  500G     0 100% /mnt/data

Если значение в столбце Use% близко к 100%, это подтверждает нехватку места.

Проверка количества inodes

Иногда место заканчивается из-за большого количества мелких файлов:

df -i

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

Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/sda1      655360 655360     0 100% /

Если IUse% равен 100%, значит, исчерпаны inodes, а не собственно место на диске.

Поиск крупных директорий

Найдите директории, занимающие больше всего места:

du -sh /* 2>/dev/null | sort -rh | head -10

Для более детального анализа конкретной директории:

du -sh /var/*

Способы решения проблемы

Очистка журналов системы

Системные журналы могут занимать много места. Очистите старые логи:

# Очистка journald (последние 7 дней)
sudo journalctl --vacuum-time=7d

# Очистка старых логов
sudo rm -rf /var/log/*.gz
sudo rm -rf /var/log/syslog.*
sudo truncate -s 0 /var/log/syslog

Очистка кэша пакетного менеджера

Удалите кэш установленных пакетов:

Для Debian/Ubuntu:

sudo apt clean
sudo apt autoremove
sudo apt-get clean

Для CentOS/RHEL:

sudo yum clean all
sudo dnf clean all

Для Arch Linux:

sudo pacman -Scc

Удаление старых ядер системы

Если система давно не обновлялась, старые ядра могут занимать много места:

# Для Ubuntu/Debian
sudo apt autoremove --purge

# Для CentOS/RHEL
sudo package-cleanup --oldkernels --count=2

Очистка временных файлов

Удалите содержимое временных директорий:

sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*

Удаление крупных файлов

Найдите и удалите большие файлы вручную:

# Поиск файлов больше 100 МБ
sudo find / -type f -size +100M -exec ls -lh {} \;

Внимание: Перед удалением любых файлов убедитесь, что они не являются системными или важными для работы приложений.

Расширение дискового пространства

Если очистка не помогла, рассмотрите возможность:

  • Добавления нового диска и монтирования его в систему
  • Расширения существующего раздела (с помощью gparted или resize2fs)
  • Создания символических ссылок на новый раздел

Профилактика повторного возникновения

Чтобы избежать повторения ошибки ENOSPC в будущем:

  1. Регулярно очищайте систему — настройте автоматическую очистку журналов и кэшей.
  2. Настройте ротацию логов — отредактируйте /etc/logrotate.conf.
  3. Мониторинг — используйте системы мониторинга (Prometheus, Zabbix) для отслеживания использования диска.
  4. Разделение директорий — размещайте /tmp, /var/log и /home на отдельных разделах.

Заключение

Ошибка No space left on device (ENOSPC) в Linux — частая проблема, с которой сталкиваются системные администраторы и пользователи. В большинстве случаев она решается очисткой диска от ненужных файлов: журналов, кэшей и временных данных. Если регулярно проводить профилактическое обслуживание системы, риск возникновения этой ошибки сводится к минимуму.

При серьёзных проблемах с дисковым пространством рекомендуется пересмотреть архитектуру хранения данных и, при необходимости, расширить дисковую подсистему.

Часто задаваемые вопросы

Почему df показывает свободное место, но ошибка ENOSPC всё равно возникает?
Можно ли удалить системные файлы для освобождения места?
Как найти самые большие файлы на диске?

Полезное

Проверьте использование диска
Проверьте количество inodes
Найдите директории с большим объёмом данных
Очистите системные журналы