Linux ENOSPCКритическая

Ошибка полного диска в Linux — пошаговое решение и профилактика

Когда диск в Linux переполняется, система может перестать работать, появляться ошибки ввода-вывода и замедляться работа. В этой статье вы узнаете, как быстро обнаружить проблему, освободить место и предотвратить её повторение на Ubuntu, Debian и CentOS.

Обновлено 7 августа 2026 г.
5-10 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 22.04Ubuntu 20.04Debian 11CentOS 8

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

Ошибка ENOSPC (No space left on device) появляется, когда файловая система в Linux переполняется. Типичное сообщение:

bash
df: невозможно получить доступ '/home/user/data': Нет такого файла или директории

или

bash
Ошибка записи: Нет места на устройстве

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

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

  1. Полный раздел – свободное место на монтируемом разделе достигло нуля.
  2. Рост лог-файлов – без настройки ротации логи заполняют /var/log и другие каталоги.
  3. Кэш Docker / временные файлы – образы контейнеров, слои и кэши пакетного менеджера накапливаются.
  4. Сбой резервного копирования – старые архивы или неудачные бэкапы занимают всё доступное пространство.
  5. Ошибки монтирования или LVM – неправильно настроенный LVM или повреждённый раздел приводят к неиспользуемому, но «занятому» пространству.

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

Способ 1: Очистка дискового пространства

  1. Проверка свободного местаdf -h показывает, какой раздел переполнен. Обратите внимание на столбец Use%.
  2. Удаление ненужных пакетов
    sudo apt-get autoremove && sudo apt-get autoclean
    
  3. Очистка пользовательского кэша
    rm -rf ~/.cache/*
    
  4. Удаление старых логов
    sudo journalctl --vacuum-time=7d
    

💡 Совет: Для более глубокого очищения логов используйте sudo logrotate -f /etc/logrotate.d/docker.

Способ 2: Использование утилит для анализа и удаления больших файлов

  1. Определение больших директорий
    sudo du -sh /* | sort -hr | head -10
    
  2. Поиск больших файлов в конкретном каталоге
    sudo find /var/log -type f -size +100M -exec ls -lh {} \;
    
  3. Удаление ненужных больших файлов (будьте осторожны!)
    sudo rm -v /var/log/old-logs/*.log
    

Способ 3: Расширение диска

3.1. LVM (Logical Volume Manager)

# Проверка LVM
sudo lvdisplay

# Добавление свободного места к корневому разделу
sudo lvextend -l +100%FREE /dev/vg0/usr
sudo resize2fs /dev/vg0/usr

3.2. Простой раздел (добавление нового диска)

# Подключите новый диск
sudo fdisk /dev/sdb   # создайте новый раздел
sudo mkfs.ext4 /dev/sdb1
sudo mount /dev/sdb1 /mnt/newdisk

Способ 4: Настройка ротации логов и очистки кэша

  1. Ротация логов через logrotate
    Отредактируйте /etc/logrotate.d/custom:
    /var/log/custom/*.log {
        daily
        rotate 7
        compress
        missingok
        notifempty
    }
    
  2. Очистка кэша пакетного менеджера
    sudo apt-get clean
    sudo yum clean all
    
  3. Очистка кэша Docker
    sudo docker system prune -a
    

Способ 5: Альтернативное решение — использование tmpfs для временных файлов

Для каталогов, которые могут быть безопасно размещены в памяти (например, /tmp или /var/tmp), используйте tmpfs:

# Создайте tmpfs-монтирование размером 2 ГБ
sudo mount -t tmpfs -o size=2G tmpfs /var/tmp/fast

Добавьте строку в /etc/fstab, чтобы монтирование выполнялось при загрузке:

tmpfs   /var/tmp/fast   tmpfs   defaults,size=2G   0   0

Профилактика

  • Регулярно проверяйте свободное место с помощью df -h или графического инструмента gnome-disk-utility.
  • Настройте ротацию логов (logrotate, journalctl --vacuum-time) и удаляйте старые архивы.
  • Очищайте кэши (apt-get clean, docker system prune) после установки пакетов или работы с контейнерами.
  • Мониторьте большие каталоги с помощью скриптов du -sh /path/* | sort -hr.
  • Используйте дисковые квоты, если необходимо ограничить размер данных для конкретных пользователей или групп.
  • Планируйте резервное копирование и периодически проверяйте, что архивы хранятся вне основного диска.

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

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

Как узнать, переполнен ли диск в Linux?
Почему система начинает выдавать ошибки 'No space left on device'?
Как предотвратить повторное переполнение диска?

Полезное

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

Эта статья помогла вам решить проблему?