Linux

Очистка диска в Linux: полное руководство по освобождению места

В этом гайде вы научитесь анализировать использование дискового пространства и безопасно очищать систему Linux от временных файлов, кэша пакетов и других ненужных данных, чтобы быстро освободить место.

Обновлено 14 февраля 2026 г.
15-30 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 20.04+Debian 10+CentOS 7+Fedora 30+Arch Linux

Введение / Зачем это нужно

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

Требования / Подготовка

Перед началом убедитесь, что:

  1. У вас есть доступ к терминалу с правами суперпользователя (sudo) для удаления системных файлов.
  2. Вы знаете, какие данные на системе критичны. При сомнениях — сделайте резервную копию важных каталогов.
  3. Установлены базовые утилиты: df, du, find, sort. Для расширенного анализа рекомендуется установить ncdu (sudo apt install ncdu или sudo yum install ncdu).
  4. Если на системе установлен Docker, убедитесь, что служба запущена (systemctl status docker).

⚠️ Важно: Не удаляйте файлы в системных каталогах (/bin, /sbin, /usr, /etc), если не уверены в их назначении. Это может привести к неработоспособности системы.

Шаг 1: Анализ использования дискового пространства

Прежде чем удалять что-либо, нужно понять, что занимает место.

Проверка свободного места на разделах

df -h

Команда df (disk free) показывает использование файловых систем в удобочитаемом виде (-h — human-readable). Обратите внимание на процент использования (Use%) и точку монтирования (Mounted on). Если какой-то раздел заполнен на 90%+, это приоритет для очистки.

Поиск больших каталогов

sudo du -sh /* 2>/dev/null | sort -rh | head -n 20

du (disk usage) оценивает использование каталогов. -s — суммарный размер, -h — удобный формат. Мы проверяем корневые каталоги (/*), перенаправляем ошибки (например, "Permission denied") в /dev/null, сортируем по убыванию (sort -rh) и берем топ-20. Это покажет, какие каталоги самые большие.

Интерактивный анализ с ncdu

Если установлен ncdu, это самый удобный способ:

sudo ncdu /

Инструмент позволяет перемещаться по каталогам, видеть размеры и удалять файлы прямо из интерфейса (клавиша d). Будьте осторожны: удаление из ncdu необратимо.

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

Пакетные менеджеры хранят скачанные архивы пакетов, которые после установки часто не нужны.

Для APT (Debian, Ubuntu, Mint)

sudo apt-get clean

Удаляет все файлы из кэша (/var/cache/apt/archives). Это безопасно, но при последующей установке пакетов их придется скачивать заново.

Если хотите очистить только устаревшие версии пакетов (освободит меньше места):

sudo apt-get autoclean

Для YUM/DNF (RHEL, CentOS, Fedora)

sudo yum clean all

или для DNF:

sudo dnf clean all

Удаляет кэш метаданных и пакетов из /var/cache/yum или /var/cache/dnf.

Для Pacman (Arch Linux)

sudo pacman -Scc

Очищает весь кэш пакетов. Будьте осторожны: вы не сможете откатиться на предыдущие версии пакетов без перескачивания.

Для Zypper (openSUSE)

sudo zypper clean

Шаг 3: Удаление старых ядер и неиспользуемых пакетов

Системы Linux часто оставляют старые версии ядра после обновлений. Каждое ядро занимает 100-300 МБ.

Для APT

sudo apt-get autoremove --purge

Удалит пакеты, установленные как зависимости, но больше не нужные, включая старые ядра. Флаг --purge также удаляет конфигурационные файлы.

Если нужно удалить конкретное старое ядро:

dpkg -l 'linux-image*'  # список установленных ядер
sudo apt-get remove linux-image-5.4.0-XX-generic

Для DNF/YUM

sudo dnf autoremove

или

sudo yum autoremove

Для Pacman

sudo pacman -Rns $(pacman -Qdtq)

Удаляет "сиротские" зависимости (пакеты, установленные как зависимости, но не являющиеся зависимостями ни для одного установленного пакета). Будьте осторожны: команда может удалить важные пакеты, если они были установлены вручную. Проверьте список перед удалением:

pacman -Qdtq

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

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

Очистка /tmp и /var/tmp

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

⚠️ Внимание: Убедитесь, что нет важных процессов, которые используют эти каталоги. Лучше удалять файлы старше 10 дней:

sudo find /tmp -type f -atime +10 -delete
sudo find /var/tmp -type f -atime +10 -delete

Очистка кэша пользователя

Для текущего пользователя:

rm -rf ~/.cache/*

Для всех пользователей (требует sudo):

sudo rm -rf /home/*/.cache/*

Или используйте ncdu для анализа ~/.cache.

Шаг 5: Очистка логов

Логи в /var/log могут разрастаться, особенно если приложения пишут в них без ротации.

Удаление старых сжатых логов

sudo find /var/log -type f -name "*.gz" -delete

Удаляет сжатые архивы логов (обычно это старые логи, уже ротированные).

Очистка активных логов (осторожно!)

sudo find /var/log -type f -name "*.log" -size +100M -delete

Удаляет лог-файлы больше 100 МБ. Перед удалением проверьте, можно ли их сжать (gzip) или ротировать через logrotate.

Проверка и очистка systemd journal (если используется)

sudo journalctl --disk-usage

Показывает текущий размер журнала systemd. Ограничьте его:

sudo journalctl --vacuum-size=100M

Удалит старые записи, оставив не более 100 МБ. Или по времени:

sudo journalctl --vacuum-time=3d

Оставит записи за последние 3 дня.

Шаг 6: Поиск и удаление больших файлов

Иногда место занимают "забытые" файлы: iso-образы, архивы, дампы.

Поиск файлов больше N МБ

sudo find / -type f -size +500M -exec ls -lh {} \; 2>/dev/null | awk '{ print $5, $9 }'

Ищет файлы больше 500 МБ и выводит их размер и путь. Измените +500M на нужный размер.

Поиск больших каталогов (альтернатива du)

sudo du -a / 2>/dev/null | sort -n -r | head -n 30

Покажет топ-30 самых больших файлов и каталогов во всей системе.

Удаление конкретного файла

После нахождения файла убедитесь, что он не нужен, и удалите:

sudo rm -f /путь/к/файлу

Шаг 7: Очистка Docker (если установлен)

Docker быстро заполняет диск образами, контейнерами и томами.

Просмотр использования

docker system df

Показывает место, занятое образами, контейнерами, томами и кэшем сборки.

Очистка всего неиспользуемого

docker system prune -a

Удалит:

  • Все остановленные контейнеры
  • Неиспользуемые образы (включая dangling и unreferenced)
  • Неиспользуемые сети
  • Кэш сборки Флаг -a удаляет также неиспользуемые образы, а не только dangling.

Точечная очистка

docker image prune -a  # только образы
docker container prune # только контейнеры
docker volume prune    # только тома

💡 Совет: Добавьте --filter "until=24h" чтобы удалить только объекты старше 24 часов.

Шаг 8: Дополнительные методы (по необходимости)

Очистка кэша браузеров (для десктоп-систем)

  • Firefox: rm -rf ~/.cache/mozilla/firefox/*.default/cache2/
  • Chrome/Chromium: rm -rf ~/.cache/google-chrome/Default/Cache/
  • Edge: rm -rf ~/.cache/microsoft-edge/Default/Cache/

Очистка кэша Flatpak/Snap

flatpak uninstall --unused  # Flatpak
sudo snap set system refresh.retain=2  # Оставить только 2 последних версии snap-пакетов

Очистка кэша компиляторов

sudo rm -rf /var/lib/apt/lists/*  # кэш метаданных APT (уже удален в шаге 2, но можно заново)
sudo rm -rf /usr/share/doc/*/  # документация пакетов (может занимать много)

Проверка результата

После всех очисток проверьте, сколько места освободилось:

df -h

Сравните с исходными данными. Убедитесь, что критически важные разделы (например, / или /var) теперь имеют запас свободного места (минимум 10-15%).

Также проверьте, что службы работают нормально:

systemctl status --type=service --state=running

Если какие-то службы упали, возможно, вы удалили их логи или файлы блокировок.

Возможные проблемы

1. "Нет свободного места" при выполнении команд

Некоторые команды (например, apt-get) требуют свободного места для работы. Если место закончилось полностью:

  • Удалите самые большие файлы, найденные на шаге 6.
  • Временно переместите большие файлы на другой раздел или внешний диск.
  • Увеличьте размер раздела (если есть возможность).

2. Файлы удалены, но место не освободилось

Это происходит, если файл открыт процессом (например, лог-файл, который удалили, но процесс продолжает писать в него). Найдите такие файлы:

sudo lsof | grep deleted

В выводе будут строки вида:

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
rsyslogd 1234   root    1w   REG    8,1   1024000 123456 /var/log/syslog (deleted)

Перезапустите процесс (например, sudo systemctl restart rsyslog), или перезагрузите систему.

3. Удалены важные файлы

Если случайно удалили системный файл:

  • Восстановите из резервной копии.
  • Переустановите поврежденный пакет:
    sudo apt-get install --recover пакет
    
  • В крайнем случае — восстановите из установочного носителя.

4. После очистки кэша пакетов не работает apt-get update

Убедитесь, что вы не удалили кэш метаданных (/var/lib/apt/lists). Если удалили, выполните:

sudo apt-get update

5. Docker не запускается после docker system prune

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

docker-compose up -d  # если используете docker-compose

Заключение

Регулярная очистка диска — важная часть обслуживания Linux-системы. Рекомендуется:

  • Анализировать использование диска раз в месяц с помощью ncdu.
  • Настроить автоматическую ротацию логов через logrotate.
  • Ограничивать размер кэша пакетов (например, для APT: APT::Keep-Downloaded-Packages "0"; в /etc/apt/apt.conf.d/).
  • Для Docker-хостов настроить --data-root на отдельный раздел или использовать volume-драйверы.

Эти шаги помогут поддерживать систему в чистоте и избежать внезапного заполнения диска.

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

Как безопасно очистить кэш пакетов в Ubuntu?
Можно ли удалять файлы в /tmp?
Как найти самые большие файлы на диске?
Что делать, если после очистки место не освободилось?

Полезное

Анализ использования дискового пространства
Очистка кэша пакетного менеджера
Удаление старых ядер и неиспользуемых пакетов
Очистка временных файлов
Очистка логов
Поиск и удаление больших файлов
Очистка Docker (если установлен)
Очистка systemd journal (если используется)