Введение
С течением времени в Ubuntu накапливаются временные файлы, кэши пакетов, старые версии ядер и логи, которые могут занимать десятки гигабайт. Эта инструкция поможет вам безопасно очистить диск, вернуть место и поддерживать систему в порядке. Мы рассмотрим встроенные утилиты и проверенные методы, работающие на актуальных версиях Ubuntu (20.04, 22.04, 24.04).
Требования
- Доступ к терминалу (Ctrl+Alt+T или SSH).
- Права суперпользователя (sudo) для большинства команд.
- Рекомендация: Создайте резервную копию важных данных перед массовым удалением.
Шаг 1: Проверка текущего использования диска
Перед очисткой определите, какие разделы заполнены. Выполните:
df -h
Пример вывода:
Файл.система Размер Использовано Доступно Использовано% Смонтировано в
/dev/sda1 50G 45G 3,1G 94% /
/dev/sda2 100G 12G 88G 12% /home
Использовано%показывает заполненность. Если значение близко к 100%, срочно нужна очистка.- Для анализа конкретных папок (например,
/varили/home) используйте:
Это покажет 20 самых больших подкаталогов вsudo du -sh /var/* | sort -rh | head -20/var.
Шаг 2: Очистка кэша APT
APT хранит скачанные пакеты в /var/cache/apt/archives/. Они часто занимают сотни мегабайт.
Очистка всего кэша:
sudo apt-get clean
Удалит все файлы пакетов из кэша.
Очистка только устаревших пакетов (без удаления актуальных):
sudo apt-get autoclean
Дополнительно: Удалите зависимости, установленные автоматически и больше не нужные:
sudo apt-get autoremove --purge
⚠️ Важно:
autoremoveможет удалить пакеты, которые вы установили вручную, если они были установлены как зависимости. Просмотрите список перед подтверждением.
Шаг 3: Удаление старых версий ядра
Каждое обновление ядра оставляет старый образ (по 200–500 МБ каждый). Оставьте минимум два ядра: текущее и одно запасное.
- Узнайте текущее ядро:
uname -r
Пример:5.15.0-86-generic. - Просмотрите установленные ядра:
dpkg --list 'linux-image*' | grep ^ii - Удалите старые ядра (например,
5.15.0-78-generic):sudo apt-get remove --purge linux-image-5.15.0-78-generic linux-headers-5.15.0-78-generic💡 Совет: Не удаляйте ядро, соответствующее
uname -r. Можно оставить еще одно старое для отката. - Обновите загрузчик (если GRUB не обновился автоматически):
sudo update-grub
Шаг 4: Очистка системных журналов
Systemd хранит логи в /var/log/journal/. Они могут разрастаться.
Очистка старых журналов (оставить за последние 3 дня):
sudo journalctl --vacuum-time=3d
Очистка по размеру (оставить не более 100 МБ):
sudo journalctl --vacuum-size=100M
Постоянное ограничение: Отредактируйте /etc/systemd/journald.conf:
[Journal]
SystemMaxUse=100M
Затем перезапустите службу:
sudo systemctl restart systemd-journald
Шаг 5: Очистка временных файлов
5.1. Системные временные файлы (/tmp)
# Удалить файлы в /tmp, не использовавшиеся 10 дней
sudo find /tmp -type f -atime +10 -delete
# Удалить пустые каталоги (опционально)
sudo find /tmp -type d -empty -delete
5.2. Кэши пользовательских приложений
- Flatpak:
flatpak uninstall --unused - Snap:
sudo snap set system refresh.retain=2(оставить 2 последних версии) иsudo snap remove <old-snap> - Браузеры: Очистите кэш через настройки браузера или удалите папки
~/.cache/chromium/,~/.cache/mozilla/.
Шаг 6: Поиск и удаление больших файлов
6.1. Использование find
Найдите файлы больше 100 МБ во всей системе (может занять время):
sudo find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null | awk '{print $5, $9}'
Проверьте список и удалите ненужные вручную.
6.2. Использование ncdu (рекомендуется)
Установите интерактивный анализатор:
sudo apt-get install ncdu
Запустите для анализа домашней папки:
ncdu ~
Или для корня (требует sudo):
sudo ncdu /
Навигация: стрелки для выбора, d для удаления файла/папки, q для выхода.
Проверка результата
- Снова выполните
df -hи сравните значенияИспользовано%с первоначальными. - Для быстрой проверки свободного места:
(ноfree -hfreeпоказывает RAM, а не диск; для диска используйтеdf). - Если место не освободилось полностью, проверьте, не используются ли удалённые файлы процессами (редко, но бывает):
Перезапустите соответствующие процессы или перезагрузите систему.sudo lsof | grep deleted
Возможные проблемы
❌ "No space left on device" при выполнении команд
- Причина: Недостаточно места для временных файлов операции.
- Решение: Вручную удалите самый большой файл (например, старый лог или дамп) из
/var/logили домашней папки. Используйтеncduдля поиска.
❌ Удаление важного файла/ядра
- Причина: Ошибка вручную или
autoremoveудалил нужный пакет. - Решение: Восстановите из бэкапа или переустановите пакет (
sudo apt-get install linux-image-<current>). Для ядер можно загрузиться в старом ядре из GRUB и восстановить.
❌ Ошибки доступа при очистке /tmp или кэшей
- Причина: Запуск без sudo или файлы заблокированы процессами.
- Решение: Используйте
sudoдля системных папок. Для пользовательских кэшей — работайте от своего пользователя без sudo.
❌ Очистка не дала ожидаемого эффекта
- Причина: Большие файлы скрыты в других местах (например, в
/var/lib/dockerдля Docker,~/snapдля Snap). - Решение: Анализируйте с помощью
ncduилиduконкретные подкаталоги. Для Docker:docker system prune -a(осторожно, удалит все неиспользуемые образы и контейнеры).
❌ Система не загружается после удаления ядер
- Причина: Удалено текущее и единственное рабочее ядро.
- Решение: Загрузитесь из救援-режима (Recovery Mode) через GRUB и переустановите ядро:
sudo apt-get install linux-image-generic sudo update-grub