Linux

Чистим Linux: 5 проверенных способов освободить место на диске

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

Обновлено 15 февраля 2026 г.
15-30 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 20.04+Debian 11+CentOS 8+/RHEL 8+Fedora 35+

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

Дисковое пространство на Linux-сервере или рабочей станции может закончиться внезапно из-за накопления служебных файлов: кэша пакетов, старых версий ядра, неочищенных логов и временных данных. Это приводит к ошибкам записи, сбоям в работе служб и невозможности установки обновлений. Данный гайд поможет вам безопасно освободить от 5 до 50 ГБ (и более) за 20 минут, не затрагивая пользовательские данные и не нарушая работу системы.

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

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

  1. У вас есть права sudo или доступ к root-пользователю.
  2. Система работает на одном из поддерживаемых дистрибутивов: Ubuntu/Debian (apt), CentOS/RHEL/Fedora (dnf/yum).
  3. Вы создали резервную копию важных данных (на всякий случай).
  4. Установлены базовые утилиты: ncdu (опционально, но полезно), apt или dnf.

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

Прежде чем удалять что-либо, определите "тяжеловесные" директории. Это поможет целенаправленно очистить систему.

# Установите ncdu для интерактивного анализа (Debian/Ubuntu)
sudo apt install ncdu

# Или используйте встроенную команду du для быстрого обзора
sudo du -sh /* 2>/dev/null | sort -rh | head -20

Команда du -sh /* покажет размер каждой корневой директории. Обратите внимание на /var, /usr, /home и /tmp. Для более детального анализа внутри конкретной папки:

ncdu /var/log
ncdu /usr

Важно: Не удаляйте файлы в /usr и /etc без полного понимания их назначения.

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

Пакетные менеджеры хранят скачанные архивные файлы (.deb, .rpm) в кэше. Они занимают место, но после установки пакетов обычно не нужны.

Для Debian/Ubuntu (apt):

# Очистка кэша (удаляет файлы из /var/cache/apt/archives)
sudo apt-get clean

# Очистка только устаревших файлов (без удаления текущих)
sudo apt-get autoclean

Для CentOS/RHEL/Fedora (dnf/yum):

# Очистка всех кэшированных метаданных и пакетов
sudo dnf clean all

# Для старых систем (yum)
sudo yum clean all

Шаг 3: Удаление старых версий ядра

Каждое обновление ядра оставляет старую версию на диске. Обычно достаточно держать текущее ядро и одно запасное.

Debian/Ubuntu:

# Показать установленные ядра
dpkg --list | grep linux-image

# Автоматическое удаление старых версий (оставляет 2 последних)
sudo apt-get autoremove --purge

# Или вручную (пример):
sudo apt-get purge linux-image-5.4.0-42-generic

CentOS/RHEL 8+/Fedora (dnf):

# Показать установленные ядра
rpm -qa | grep kernel

# Удалить все, кроме последних двух (требует пакет package-cleanup)
sudo dnf install yum-utils  # если не установлен
sudo package-cleanup --oldkernels --count=2

⚠️ Важно: Никогда не удаляйте текущее загружаемое ядро. Проверьте активное ядро командой uname -r.

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

Логи в /var/log могут разрастаться indefinitly. Также systemd-journald хранит бинарные логи.

Ротация и удаление старых логов:

# Просмотр размера логов
sudo du -sh /var/log/*

# Удаление сжатых старых логов (старше 30 дней)
sudo find /var/log -type f -name "*.gz" -mtime +30 -delete
sudo find /var/log -type f -name "*.log.*" -mtime +30 -delete

# Очистка активных логов (осторожно! Лучше сначала проверить)
sudo find /var/log -type f -name "*.log" -mtime +7 -exec truncate -s 0 {} \;

Очистка journald (systemd журнал):

# Проверка текущего размера журнала
journalctl --disk-usage

# Оставить логи только за последние 7 дней
sudo journalctl --vacuum-time=7d

# Или ограничить размер до 500 МБ
sudo journalctl --vacuum-size=500M

# Постоянное ограничение (добавьте в /etc/systemd/journald.conf):
# SystemMaxUse=500M
# MaxRetentionSec=1week
sudo systemctl restart systemd-journald

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

Временные файлы в /tmp, ~/.cache, /var/tmp часто остаются после сбоев.

# Поиск файлов >100 МБ в /tmp и /var/tmp (старше 10 дней)
sudo find /tmp /var/tmp -type f -size +100M -mtime +10 -exec ls -lh {} \;

# Удаление (предварительно проверьте список!)
sudo find /tmp /var/tmp -type f -size +100M -mtime +10 -delete

# Очистка кэша пользователя (например, для браузеров, менеджеров пакетов)
rm -rf ~/.cache/*

# Очистка кэша пакетов pip/npm (если используются)
rm -rf ~/.cache/pip
rm -rf ~/.npm

💡 Совет: Для безопасного удаления используйте сначала -ls вместо -delete, чтобы увидеть, что будет удалено.

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

После каждого шага (или в конце) проверьте свободное место:

df -h /

Или для детального анализа:

ncdu /

Убедитесь, что свободного места стало достаточно (минимум 10-15% от общего объема для стабильной работы). Также проверьте, что критичные службы работают:

systemctl status --failed

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

1. Ошибка "No space left on device" при попытке удаления

Возможно, удаляется открытый файл (например, лог, который пишется процессом). После удаления такого файла место не освобождается до его закрытия. Решение: Найдите процесс через lsof | grep deleted и перезапустите его. Например, sudo systemctl restart nginx.

2. Система не загружается после удаления ядра

Если случайно удалили все ядра кроме текущего, а текущее повреждено. Решение: Загрузитесь в rescue-режиме через GRUB и переустановите ядро с LiveCD.

3. Удалены нужные файлы в /var/log

Если вы обрезали активный лог, который еще нужен для отладки. Решение: Восстановить нельзя, но можно перенаправить логи в новый файл: sudo service nginx restart (переоткроет лог). В будущем используйте truncate только для старых файлов.

4. Недостаточно места для выполнения команд

Даже для простых команд (например, apt-get clean) требуется минимум свободного места. Решение: Удалите самые большие файлы вручную (через find в /tmp или /var/log), чтобы высвободить 100-500 МБ, затем повторите шаги.

5. Ошибки прав доступа

При удалении файлов в системных директориях без sudo. Решение: Всегда используйте sudo для операций в /var, /usr, /opt. Для пользовательских кэшей (~/.cache) права не требуются.


Последнее обновление: 2026-02-15. Проверено на Ubuntu 22.04, Debian 12, CentOS Stream 9.

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

Безопасно ли удалять старые ядра Linux?
Можно ли удалить всё подчистую из /tmp?
Почему после очистки место не освобождается?
Как автоматизировать очистку?

Полезное

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

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