Введение / Зачем это нужно
Занятое дисковое пространство — одна из самых частых причин замедления работы Ubuntu и появления ошибок вроде «No space left on device». Этот гайд покажет, как не просто удалить файлы наугад, а точно найти «пожирателей» места и безопасно их очистить. Вы получите полный контроль над диском с помощью терминала.
Требования / Подготовка
- Ubuntu 20.04 или новее (инструкция подходит и для других Debian-дистрибутивов).
- Доступ к терминалу (
Ctrl+Alt+T). - Права sudo для очистки системных каталогов и установки утилит.
- Базовое знакомство с командной строкой.
Шаг 1: Установите необходимые утилиты
В современных Ubuntu уже есть всё для базового анализа (df, du), но для удобства установим два мощных инструмента:
ncdu— интерактивный текстовый анализатор (похож наdu, но с навигацией и сортировкой).duf— красивый и информативный аналогdf(показывает использование по разделам, Inodes, типы файловых систем).
# Обновляем список пакетов
sudo apt update
# Устанавливаем ncdu и duf
sudo apt install -y ncdu duf
Что делает команда: apt install загружает и устанавливает программы из официальных репозиториев. Флаг -y автоматически подтверждает установку.
Шаг 2: Проверьте общее использование диска
Сначала посмотрим, какой раздел переполнен.
# Запустите duf — это главная команда для быстрого обзора
duf
Вы увидите таблицу, где:
Size— общий размер раздела.Used— занятое место.Avail— свободное место.Use%— процент заполнения (вот на это смотрим!).
Альтернатива: старая добрая df -h (human-readable).
df -h
Важно: Обратите внимание на точку монтирования (Mounted on) переполненного раздела. Обычно это / (корневой раздел) или /home.
Шаг 3: Найдите самые большие каталоги
Теперь ищем, что конкретно занимает место на проблемном разделе. Например, если переполнен /:
# Анализируем корневой раздел. Это может занять время!
sudo ncdu /
Как работать в ncdu:
- После запуска вы увидите список папок, отсортированных по убыванию размера.
- Стрелки вверх/вниз — навигация.
- Enter — войти в папку (анализ её содержимого).
- d — удалить выделенный файл/папку (будьте осторожны!).
- q — выйти.
Совет: Начните с анализа /home (ваши личные файлы) и /var (логи, кэш). Чаще всего «виновники» — это:
- Кэш браузеров (
~/.cache/*). - Мусор в
~/Downloads. - Старые версии пакетов или ядер (
/var/cache/apt/,/boot). - Раздатые BitTorrent-клиенты (
/home/user/Downloads).
💡 Совет: Если
ncduне находит аномалий, проверьте скрытые папки (начинаются с.) в вашем домашнем каталоге. Вncduони видны.
Шаг 4: Очистите кэш пакетного менеджера APT
APT храняет скачанные .deb-пакеты в /var/cache/apt/archives. Их можно безопасно удалить после установки программ.
# Очистка кэша APT (освобождает до сотен МБ)
sudo apt-get clean
# Или более щадящий вариант — удалить только устаревшие пакеты
sudo apt-get autoclean
Разница: clean удаляет все кэшированные пакеты. autoclean удаляет только те, которые невозможно скачать (устарели).
Шаг 5: Удалите старые логи и временные файлы
Системные логи могут разрастаться. journalctl управляет логами systemd.
# Очистить логи старше 7 дней (безопасно)
sudo journalctl --vacuum-time=7d
# Или очистить, если логи занимают больше 500 МБ
sudo journalctl --vacuum-size=500M
Временные файлы: Очистка /tmp обычно безопасна, но некоторые программы могут использовать его для текущих данных.
# Удаляем содержимое /tmp (не сам каталог!)
sudo rm -rf /tmp/*
⚠️ Важно: Не удаляйте вручную файлы в
/var/logнапрямую (rm /var/log/*.log). Используйтеjournalctlили логиrotate (настроен по умолчанию). Удаление «в лоб» может сломать работающие процессы, которые пишут в эти файлы.
Шаг 6: Проверьте результат
После каждой очистки возвращайтесь к шагу 2 и смотрите, изменилась ли картина.
duf
Если место не освободилось, вернитесь в ncdu и ищите другие большие каталоги. Возможно, дело в пользовательских данных (видео, iso-образы, виртуальные машины).
Возможные проблемы
| Проблема | Решение |
|---|---|
Permission denied при запуске ncdu / | Используйте sudo ncdu / для анализа системных каталогов. Будьте осторожны с удалением! |
ncdu показывает мало места, а df говорит об обратном | Возможно, удалены файлы, но процесс ещё держит их открытыми дескриптором. Перезагрузите систему или найдите процесс через `lsof |
| После очистки кэша APT место не освободилось | Проверьте, не запущен ли в фоне unattended-upgrades — он может временно держать кэш. |
duf не устанавливается (не найден пакет) | В очень старых версиях Ubuntu используйте sudo apt install dfc (альтернатива) или ставьте duf через snap: sudo snap install duf. |
Ошибка No space left on device при попытке очистки | Да, ирония. Освободите место вручную, удалив пару крупных файла (например, старый iso), даже если это временное решение. |
Дополнительные методы (если основное не помогло)
1. Поиск больших файлов старше N дней
Найдите и удалите гигантские артефакты (например, старые бэкапы):
# Найти файлы больше 100МБ старше 30 дней в /home
find /home -type f -size +100M -mtime +30 -exec ls -lh {} \;
Удаление (только после проверки!):
find /home -type f -size +100M -mtime +30 -delete
2. Анализ inodes (если df показывает свободное место, а писать нельзя)
df -i
Если IUse% близок к 100%, проблема в количестве файлов, а не в размере. Часто причина — миллионы мелких файлов в кэше (например, npm, docker). Очистите соответствующие кэши.
3. Удаление старых ядер (осторожно!)
# Посмотреть установленные ядра
dpkg --list | grep linux-image
# Удалить старые (кроме текущего! Определите текущее через `uname -r`)
sudo apt-get remove linux-image-5.4.0-XX-generic
Никогда не удаляйте последнее/текущее ядро!
Проверка результата
- Запустите
duf— процентUse%должен снизиться. - Попробуйте создать тестовый файл большого размера (
fallocate -l 1G testfile), чтобы убедиться, что место действительно свободно. - Перезапустите службы, которые падали из-за нехватки диска (например,
sudo systemctl restart postgresql), и проверьте их логи.
Заключительные рекомендации
- Регулярность: Раз в месяц запускайте
ncdu /homeиsudo ncdu /var. - Мониторинг: Установите
dufи запускайте его при подозрении на проблемы. - Автоматизация: Добавьте в
cron(crontab -e) задачу на очистку кэша APT и журналов, но только если уверены в её безопасности. - Резервные копии: Перед массовым удалением (особенно через
find ... -delete) убедитесь, что важные данные не пострадают.