Введение
Если на диске Linux закончилось свободное место, система начинает медлить, приложения могут аварийно завершиться, а некоторые операции вообще станут невозможны. В этой статье мы покажем, как быстро выявить проблемный раздел, безопасно удалить ненужные данные и очистить логи, чтобы вернуть диску свободное пространство.
Требования / Подготовка
Вам понадобится терминал с правами администратора (sudo). Статья проверена на:
- Ubuntu 22.04
- Debian 11
- Fedora 38
Убедитесь, что вы вошли в систему под пользователем, имеющим права sudo. Также полезно заранее сохранить важные данные на другой носитель.
Пошаговая инструкция
Шаг 1: Определить проблемный раздел
Сначала узнайте, какой раздел заполнился. Используйте команду df -h, чтобы увидеть процент использования (Use%) для каждой монтируемой точки.
df -h
Обратите внимание на строку, где Use% близка к 100 %. Например, /dev/sda2 на / может показывать 98%. Это раздел, который требует немедленного внимания.
Шаг 2: Удалить ненужные пакеты и кэш
Ubuntu/Debian
# Удалить неиспользуемые пакеты (автоматически)
sudo apt-get autoremove -y
# Очистить кэш скачанных пакетов
sudo apt-get clean
# Удалить устаревшие записи кэша (старше 7 дней)
sudo apt-get autoclean
Fedora
# Удалить неиспользуемые пакеты (автоматически)
sudo dnf autoremove -y
# Полностью очистить кэш dnf
sudo dnf clean all
Команда autoremove удалит пакеты, которые больше не нужны (например, удалённые программы). clean и autoclean очистят кэш пакетов, занимающий место в /var/cache/apt/ (или /var/cache/dnf/).
Шаг 3: Очистить временные файлы системы и пользователя
Системные временные файлы обычно находятся в /tmp и /var/tmp. Пользовательские кэши (браузеры, pip и т. п.) хранятся в ~/.cache.
# Удалить временные файлы системы (безопасно, так как они не используются)
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*
# Удалить пользовательский кэш (браузеры, apt, pip и т.д.)
rm -rf ~/.cache/*
Если вы используете Python и pip, также очистите кэш pip:
# Очистить кэш pip (если используется)
pip cache purge
💡 Совет: Перед удалением временных файлов убедитесь, что в них нет активных процессов. В большинстве случаев безопасно очищать
/tmpи/var/tmp.
Шаг 4: Удалить старые логи и журналы
Системные журналы могут занимать сотни мегабайт. В современных дистрибутивах логирование ведётся через journald. Удалите записи старше одного месяца:
# Удалить системные журналы старше 1 месяца
sudo journalctl --vacuum-time=1month
Для традиционных лог-файлов в /var/log (Debian/Ubuntu) удалите файлы старше 30 дней:
# Удалить старые лог-файлы (старше 30 дней)
find /var/log -name "*.log" -type f -mtime +30 -delete
⚠️ Важно: Не удаляйте файлы конфигурации логирования (
/etc/logrotate.conf,/etc/rsyslog.conf). Только сами лог-файлы.
Шаг 5: Найти и удалить крупные файлы
Иногда скрытый «вредитель» — это один большой файл или каталог. Используйте du, чтобы найти самые крупные объекты:
# Показать 10 самых крупных директорий в корневом дереве
du -sh / | sort -hr | head -10
Для более детального поиска больших файлов (более 100 МБ) используйте find:
# Найти все файлы >100 МБ, показать размер и отсортировать по убыванию
sudo find / -type f -size +100M -print0 | xargs -0 du -ch | sort -hr | head -20
После получения списка решите, какие файлы можно безопасно удалить. Например, старые архивы, видео в разрешении 4K или установочные пакеты в /root/.cache.
Проверка результата
После выполнения шагов повторите команду df -h ещё раз:
df -h
Теперь колонка Use% должна показывать значительное уменьшение свободного места. Если раздел всё ещё близок к заполнению, вернитесь к шагу 5 и проверьте другие точки монтирования (например, /var или /home).
Возможные проблемы
- "No space left on device" при запуске команд. Убедитесь, что вы работаете под root-пользователем (
sudo) и что целевой раздел действительно монтируется (mount | grep <точка>). - "Permission denied" при удалении логов. Используйте
sudoили переключитесь на пользователя с правами администратора. - Системные журналы растут быстро после удаления. Рассмотрите возможность настройки ротации логов (
logrotate), чтобы старые записи автоматически удалялись по расписанию. - Остаточные кэши после
apt-get clean. В некоторых дистрибутивах есть отдельный кэш snap или snapd; для Snap используйтеsudo snap set system refresh.timer, а для очистки кэша:sudo rm -rf /var/cache/snap*.
Если проблема сохраняется, проверьте диск на наличие ошибок с помощью sudo fsck -k /dev/<device> и рассмотрите возможность резервного копирования данных перед перепланировкой разделов.
Теперь у вас есть полный набор инструментов, чтобы быстро вернуть диску свободное пространство и предотвратить его переполнение в будущем.