Введение / Зачем это нужно
Заполнение диска — одна из самых частых проблем на серверах и домашних компьютерах под Ubuntu. Когда место заканчивается, перестают работать обновления, ломаются приложения, а система может стать нестабильной. Этот гайд покажет, как не просто посмотреть свободное место (df -h), а найти конкретные файлы и папки, которые его «съедают». Вы получите чёткую картину и сможете принять взвешенное решение о том, что можно удалить.
Требования / Подготовка
- Доступ к терминалу (Ctrl+Alt+T) или графической оболочке.
- Права администратора (sudo) для анализа системных разделов (
/,/var) и удаления файлов, принадлежащих другим пользователям. - Рекомендуется установить утилиту
ncdu— она делает анализ интерактивным и удобным. Инструкция по установке есть в шаге 2. - Внимательность! Не удаляйте системные файлы, если не уверены на 100% в их назначении.
Пошаговая инструкция
Шаг 1: Определите, какой раздел диска переполнен
Сначала нужно понять, какой именно раздел (раздел диска или точка монтирования) исчерпал своё пространство.
df -h
Пример вывода:
Файл.сист. Размер Использовано Доступно Использовано% Смонтировано в
/dev/sda2 50G 45G 3.2G 93% /
/dev/sda1 512M 68M 445M 14% /boot/efi
/dev/sdb1 1.8T 200G 1.5T 12% /mnt/data
Здесь видно, что корневой раздел / заполнен на 93%. Анализировать нужно именно его.
Шаг 2: Установите ncdu (рекомендуется)
ncdu (NCurses Disk Usage) — это лучший инструмент для интерактивного анализа в терминале. Он быстро строит дерево использования диска и позволяет перемещаться по нему.
sudo apt update
sudo apt install ncdu
Шаг 3: Запустите анализ выбранного раздела
Запускаем ncdu на проблемный раздел. Используем sudo, чтобы избежать ошибок «Permission denied» при доступе к системным каталогам.
sudo ncdu /
Первоначальное сканирование может занять от нескольких секунд до нескольких минут в зависимости от размера раздела и количества файлов.
Шаг 4: Изучайте результаты в ncdu
После завершения сканирования вы попадёте в основной интерфейс:
--- / -----------------------------------------------------------------
45.2 GiB [##########] /usr
8.5 GiB [#### ] /var
4.2 GiB [## ] /home
1.1 GiB [# ] /opt
512.0 MiB [ ] /boot
...
Как работать:
- Стрелки
↑↓— перемещение по списку. - Стрелки
←→или клавишаEnter— войти в выбранную папку (углубиться) или выйти из неё. - Клавиша
d— удалить выбранный файл или папку. ВНИМАНИЕ! Удаление необратимо. ncdu спросит подтверждение. - Клавиша
q— выйти из программы.
На что смотреть: Ищите в верхней части списка папки, которые вы не ожидали там увидеть. Частые «кандидаты»:
/var/cache/apt/archives— кэш установленных черезapt.debпакетов./var/log— логи, особенно старые или разросшиеся (например,journal)./home/ваш_пользователь/.cache— кэш браузеров, приложений (Spotify, VS Code)./var/lib/docker— образы и контейнеры Docker./var/lib/snapd/snaps— снимки (snaps) приложений.- Каталоги с резервными копиями (
*.backup,backup), загруженными видео/ISO-образами.
Шаг 5: Альтернатива: анализ через встроенный du
Если по какой-то причине ncdu не хотите или не можете установить, используйте стандартную утилиту du в связке с sort.
Эта команда покажет 20 самых больших элементов (файлов и папок) в указанной директории (например, в /var):
sudo du -sh /var/* 2>/dev/null | sort -rh | head -20
-s— суммарный размер для каждого аргумента.-h— «человеко-читаемый» формат (K, M, G).2>/dev/null— подавляем ошибки «Permission denied».sort -rh— сортировка по убыванию размера (reverse, human-numeric).head -20— показать только первые 20 строк.
Вы можете заменить /var/* на /* для анализа всего корня, но это будет очень долго и «шумно».
Шаг 6: Графический способ: Baobab (Disk Usage Analyzer)
Для тех, кто предпочитает GUI, в Ubuntu по умолчанию установлен Baobab (Disk Usage Analyzer).
- Откройте меню приложений и найдите «Disk Usage Analyzer» или «Анализатор использования диска».
- Нажмите кнопку «Сканировать папку» (значок папки с лупой) и выберите раздел для анализа (например,
/или/home). - Дождитесь завершения сканирования.
- Интерфейс:
- Вид «Кольцо» (по умолчанию) — наглядная секторная диаграмма. Большой сектор — большая папка. Кликните на сектор, чтобы «зайти» в неё.
- Вид «Дерево» — иерархический список с размерами.
- В нижней части окна отображается путь к текущей выбранной папке и её размер.
Baobab отлично подходит для быстрого визуального ориентирования.
Проверка результата
После удаления ненужных файлов (например, очистки кэша) проверьте, освободилось ли место.
- Перезапустите анализ выбранного раздела (
ncdu /илиbaobab). - Или используйте быструю команду
df -h /для просмотра общего изменения свободного места на целевом разделе.
Вы должны увидеть, что размер «пожирателя» места уменьшился, а поле Available (доступно) в выводе df выросло.
Возможные проблемы
- Ошибка «Permission denied» при запуске
ncduилиdu.- Причина: Попытка прочитать системные каталоги, принадлежащие root.
- Решение: Запускайте команды с
sudo(sudo ncdu /). Будьте осторожны с удалением в этом режиме.
- Анализ «завис» или работает очень долго.
- Причина: Огромное количество мелких файлов (например, в
/var/lib/docker/overlay2или/home/user/.cache) или сетевые файловые системы (NFS). - Решение: Проявите терпение. Можно проанализировать не весь раздел, а конкретную «подозрительную» папку, которую вы уже нашли (например,
sudo ncdu /var/lib/docker).
- Причина: Огромное количество мелких файлов (например, в
- Не могу удалить файл через
ncdu(клавишаdне работает или файл не удаляется).- Причина: Файл защищён от записи (атрибут
chattr +i) или вы не являетесь его владельцем (даже сsudoв некоторых случаях для особо защищённых файлов). - Решение: Проверьте права:
ls -la /путь/к/файлу. Если файл принадлежит другому пользователю/группе, возможно, потребуется изменить права (sudo chown) или атрибуты (sudo chattr -i), только если вы уверены в безопасности этого действия.
- Причина: Файл защищён от записи (атрибут
- Baobab не показывает какие-то папки или размеры не сходятся с
ncdu.- Причина: Baobab по умолчанию может не учитывать размер жёстких ссылок (hard links) или некоторые специальные файловые системы (proc, sysfs). Также он может пропускать очень маленькие файлы для ускорения.
- Решение: Доверяйте
ncduилиduкак более точным и «низкоуровневым» инструментам. Используйте Baobab для наглядности, аncdu— для точности.
- Освободил 10 ГБ, а
df -hпоказывает прирост всего в 2 ГБ.- Причина: Удалённые файлы всё ещё используются запущенным процессом (например,.log-файл, который удалили, но процесс continues писать в него). Пространство не освобождается до тех пор, пока процесс не закроет дескриптор файла.
- Решение: Найдите процесс, удерживающий файл:
sudo lsof | grep '(deleted)'. В выводе будет указан PID. Перезапустите этот процесс (если это безопасно) или завершите его (sudo kill PID). После этого место освободится.