Диск и место в Linux: что важно понять сразу
В Linux свободное место можно проверять несколькими способами — и получать разные цифры. За 15–20 минут вы разберётесь, чем раздел отличается от точки монтирования, найдёте крупные каталоги и проверите, не закончились ли inode.

Перед началом: что понадобится
За 15–20 минут вы научитесь проверять свободное место, находить каталоги, которые занимают диск, и отличать нехватку места от нехватки inode. Инструкция рассчитана на обычный дистрибутив Linux с GNU coreutils и util-linux. Команды подходят для сервера и компьютера; для BusyBox синтаксис некоторых утилит может отличаться.
Нужен доступ к терминалу. Для просмотра собственных файлов достаточно обычного пользователя, но часть системных каталогов без прав администратора покажет ошибки доступа. Не запускайте команды удаления, пока не выясните, что именно занимают найденные файлы.
Сначала разберитесь, что именно заполнено
Физический диск, раздел и файловая система — разные вещи. Диск может быть разбит на несколько разделов; файловая система хранит на разделе файлы и метаданные. Linux показывает содержимое файловой системы в каталоге, который называется точкой монтирования. Например, корень системы монтируется в /, а домашние каталоги могут находиться на отдельном разделе, смонтированном в /home.
Отсюда частая путаница: «на диске 500 ГБ» не означает, что все 500 ГБ доступны для /. Часть пространства может быть выделена другому разделу или вообще не подключена к файловой системе.
Не начинайте с удаления файлов. Сначала выясните, какая файловая система заполнена и на каком пути лежат крупные данные.
Точка монтирования — каталог, через который в Linux доступна подключённая файловая система.¹
Пять проверок, которые дают картину
Посмотрите размеры файловых систем. Выполните
df -hT. КолонкаTypeпоказывает тип файловой системы,Size— её размер,Avail— доступное место, аMounted on— точку монтирования. Например, если заполнена строка с точкой монтирования/, проблема касается корневой файловой системы, а не обязательно всего физического диска. Проверка: команда вывела список файловых систем и точки монтирования.Уточните, какие устройства подключены. Выполните
lsblk -f. Утилита покажет диски, разделы, тип файловой системы и точки монтирования. Сопоставьте столбецMOUNTPOINTSс выводомdf. Проверка: вы видите, какой раздел смонтирован в/,/homeили другом заполненном каталоге.Измерьте каталоги внутри нужной файловой системы. Если заполнен корень, выполните
sudo du -xhd1 / 2>/dev/null | sort -h. Здесь-xне даёт переходить на другие файловые системы,-d1ограничивает глубину одним уровнем, аsort -hсортирует размеры в удобном виде. Подставьте вместо/нужную точку монтирования, если заполнен другой раздел. Проверка: в конце списка находятся самые объёмные каталоги первого уровня, например/varили/home.Сузьте поиск. Если большим оказался
/var, проверьте его подкаталоги командойsudo du -xhd1 /var 2>/dev/null | sort -h. Повторяйте для найденного каталога, пока не дойдёте до конкретной папки. Не удаляйте содержимое системных каталогов наугад: там могут лежать базы, очереди, журналы и данные служб. Проверка: вы можете назвать конкретный каталог или тип данных, который занимает место.Проверьте inode. Выполните
df -i. Если для нужной точки монтирования значениеIUse%близко к 100%, файловая система может не создавать новые файлы даже при заметном запасе гигабайтов. Проверка: вы понимаете, закончились ли блоки данных, inode или ни то ни другое.
Если нужно проверить конкретный путь, команда df -hT /путь/к/каталогу покажет файловую систему, в которой он находится. Это полезно, когда каталоги выглядят вложенными, но часть из них смонтирована отдельно.
Почему цифры не всегда совпадают
df считает занятое место на файловой системе, а du складывает размеры файлов, которые может обойти в указанном каталоге. Поэтому результаты могут отличаться. Например, процесс может продолжать использовать удалённый файл: в списке каталогов его уже нет, а место на файловой системе ещё занято. Перезапускать службу наугад не стоит — сначала выясните, какой процесс держит файл, и оцените последствия перезапуска.
Есть и другие причины расхождений: часть каталогов доступна только администратору, каталог может быть точкой монтирования другой файловой системы, а настройки файловой системы могут резервировать часть пространства. Поэтому сравнивать цифры имеет смысл для одной и той же точки монтирования и с учётом прав доступа.
Если команда не сработала
Permission denied— у пользователя нет прав на просмотр части каталогов. Для диагностического чтения попробуйте команду сsudo. Не выдавайте себе права на изменение файлов только ради измерения.du: invalid option -- 'd'— вероятно, установлена не GNU-версияdu, например BusyBox. Проверьтеdu --helpи документацию своего дистрибутива; не копируйте синтаксис GNU без проверки.No space left on deviceпри наличии свободных гигабайтов — проверьтеdf -i, нужную точку монтирования и выводdf -hT /путь. Частая причина — исчерпание inode или заполненный отдельный раздел.df: /путь: No such file or directory— проверьте написание пути. Если путь должен существовать, убедитесь, что нужный диск или сетевой ресурс смонтирован.
Что делать с результатом
Если крупный каталог содержит личные файлы, решите, можно ли перенести их на другой раздел или внешний носитель. Если место занимают данные приложения, проверьте документацию приложения и его правила очистки. Для журналов и баз данных используйте предусмотренные средства управления, а не ручное удаление файлов, которые служба может держать открытыми.
После любого безопасного изменения снова выполните df -hT и проверьте ту же точку монтирования. Если размер занятого места не изменился, проверьте, не остался ли файл открытым процессом, и не перепутали ли вы раздел. Инвалидация файлового кэша и расширение разделов — отдельные задачи; сначала зафиксируйте исходный вывод df -hT и lsblk -f, чтобы понимать текущее состояние.
¹ В GNU/Linux точку монтирования можно увидеть, например, в выводе df и lsblk.
Источники
Логотип и фирменный стиль: Три концепции разного характера, палитра с обоснованием, проверка на читаемость в малом размере и в один цвет.
Спросить за 60 ₽Источники: Руководство по команде df, Руководство по команде lsblk
Частые вопросы
Почему df показывает, что место занято, а du не находит большие файлы?
Почему свободны гигабайты, но Linux не даёт создать файл?
Можно ли безопасно удалить всё из /var/log?
Почему размер папки в файловом менеджере отличается от размера в du?
Как понять, что почти заполнен именно физический диск, а не раздел?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.