Начните бесплатный 3-дневный пробный период
Зарегистрируйтесь и попробуйте все премиум-функции бесплатно.
*Только для новых пользователей. Один пробный период на пользователя.


Если на Linux закончилось место на диске, сначала определите файловую систему и точку монтирования, отклонившую запись, затем сравните ёмкость в байтах с использованием inode. Ищите крупные каталоги через du -x -d 1 в пределах той же файловой системы (-d задаёт глубину и в GNU du на Linux, и в BSD-версии du на macOS), проверьте журнал, пакетный кэш и удалённые файлы, которые ещё открыты процессами. Сначала освободите небольшой объём восстанавливаемых данных и подтвердите результат на том же разделе.
Ключевые выводы
- Заполненный корень, отдельный home, исчерпанные inode и отсутствующее монтирование требуют разных исправлений.
dfпоказывает использование файловой системы, аduсуммирует доступные записи каталогов; значения могут различаться обоснованно.[1][2]- Ограничьте сканирование одной файловой системой, чтобы не считать другие диски.
- Не удаляйте неизвестные данные из
/usr,/var/libили каталога приложения только из-за размера.
Общий порядок описан в руководстве по устранению проблем. Если не работает и менеджер пакетов, сохраните его ошибку и после освобождения места используйте руководство APT.
Сохраните путь, на котором произошёл сбой, и текст ошибки. Запросите df именно об этом пути:
df -h /path/that/failed
df -i /path/that/failed
findmnt -T /path/that/failed
df -h показывает занятую и доступную ёмкость в байтах для файловой системы, содержащей путь; df -i показывает использование inode. Руководство df определяет эти отчёты уровня файловой системы и параметр удобочитаемого вывода. findmnt -T помогает определить монтирование, на котором находится путь.
Файловая система может иметь свободные байты, но не иметь свободных inode, если в ней очень много мелких файлов. И наоборот, большая файловая система в другом месте не поможет заполненному корню или отдельно смонтированному /var. Если ожидаемый том данных не смонтирован, приложение может записывать в нижележащий каталог на корневой файловой системе; безопасно восстановите монтирование, прежде чем решать, что там должно находиться.
Резервное место и политику квот уточняйте у владельца системы, а не считайте, что видимый процент — это вся картина. На производственных или зашифрованных системах сохраните доступ для восстановления до изменений хранилища.
Начните с затронутой точки монтирования и оставайтесь в этой файловой системе. Для корня:
sudo du -x -h --max-depth=1 / 2>/dev/null
Параметр -x пропускает каталоги на других файловых системах, а --max-depth=1 ограничивает первый проход. Отсортируйте или изучите итоги, затем повторите команду для одного знакомого крупного каталога, например /var или конкретного домашнего каталога. Не начинайте с неограниченного обхода всех смонтированных дисков, сетевых ресурсов, контейнерных монтирований и резервных томов.
du сообщает объём доступного содержимого каталогов. Не удаляйте каталог только потому, что он первый в списке. Определите его владельца и назначение: база данных, образ виртуальной машины, контейнерное хранилище, резервная копия, почтовый ящик или фотобиблиотека требуют собственной процедуры хранения и остановки.
Крупные пользовательские данные лучше перенести, предварительно проверив, на другую файловую систему с резервным копированием или удалить восстанавливаемые загрузки через учётную запись владельца. Перед переносом убедитесь, что цель — другая файловая система и на ней достаточно места.
df и du не совпадают?Частые причины:
du и df измерялись в разное время, пока продолжалась запись.Если в системе установлен lsof, проверьте удалённые, но открытые файлы:
sudo lsof +L1
Если крупный файл удерживается открытым, организуйте контролируемый перезапуск службы-владельца или перечитывание её конфигурации (reload) по документации. Не обрезайте неизвестный дескриптор и не останавливайте критическую службу без плана обслуживания. Место обычно возвращается, когда последний процесс закрывает файл.
Сначала проверьте, сколько места занимает журнал systemd:
journalctl --disk-usage
Руководство journalctl описывает --disk-usage и параметры очистки (vacuum), которые удаляют самые старые архивные файлы журнала, пока не будет достигнута граница размера или времени. Активные файлы журнала при vacuum не удаляются, а наибольший эффект может дать осознанное сочетание очистки с ротацией.[3]
Если подтверждено, что архивные журналы — основная категория, которую можно освободить, задайте ограниченную цель, подходящую для системы, например:
sudo journalctl --vacuum-size=500M
Предел выбирают по требованиям хранения, расследования инцидентов и соответствия; 500M — пример, а не универсальная политика. Сохраните недавние журналы, нужные, чтобы понять рост занятого места.
Кэш APT сначала измерьте, затем очищайте:
du -sh /var/cache/apt/archives
sudo apt-get clean
apt-get clean удаляет загруженные файлы пакетов из локального архивного кэша APT, но не установленные пакеты. Используйте его, только если этот кэш находится на затронутой файловой системе, а базе пакетов хватает рабочего места. У других приложений свои поддерживаемые команды очистки; не придумывайте общее правило удаления для их каталогов данных.
Если почти заполненная файловая система мешает обычным инструментам, сначала нужен небольшой измеримый запас, а не максимально крупное удаление. Когда это безопасно для эксплуатации, замедлите или остановите известный источник записи. Затем выберите одну восстанавливаемую категорию с подтверждённым владельцем и расположением на затронутом разделе, например дубликат экспорта или загруженный архив. До изменения запишите путь, размер, владельца и причину удаления.
Перед первой очисткой ответьте на четыре вопроса:
df -h /path/that/failed?Освободите одну ограниченную категорию и сразу повторите df -h и df -i для того же пути. Если ожидаемый объём не появился, остановитесь и проверьте удалённые открытые файлы, отсутствующее подключение, права, снимки или продолжающуюся запись, а не удаляйте вторую несвязанную категорию. Так сохраняются доказательства исходного роста, а аварийная очистка не превращается в непроверенную политику хранения.
На общем или производственном узле запишите владельца службы и решение об обслуживании до перезапуска процесса или vacuum журналов. Аварийного запаса должно хватить для управляемой работы и диагностики; постоянное хранение, квоты, исправление подключения или расширение ёмкости — отдельная задача со своим откатом и мониторингом.
Используйте такой порядок:
Если это безопасно, остановите поток, создающий новые данные.
Переместите или удалите известные восстанавливаемые загрузки, экспорты и временные копии.
Очистите подтверждённый пакетный кэш его собственным инструментом.
Удалите старые архивные журналы только по явной границе размера или времени.
Освободите их контролируемым перезапуском службы.
Для баз, контейнеров, резервных копий и почты используйте только документированную процедуру приложения.
Не удаляйте вручную содержимое /usr или /var/lib, не очищайте каталог широким шаблоном и не обрезайте неизвестный журнал. Такие действия могут повредить пакеты, базы, контейнеры и аудиторские данные, освободив меньше места, чем ожидалось.
Повторите измерения для того же пути:
df -h /path/that/failed
df -i /path/that/failed
Подтвердите и свободные байты, и inode, затем повторите одну характерную запись или исходную проверку состояния службы. Запишите, сколько места освобождено и какая категория выросла. Разовая очистка не завершена, если неконтролируемый журнал, неудачное резервное копирование, неограниченный кэш или отсутствующее монтирование сразу снова заполняет файловую систему.
После стабилизации настройте поддерживаемое приложением хранение, мониторинг и пороги предупреждений. Оставьте запас для обновлений пакетов, журналов, транзакций базы данных и отката, а не только для сегодняшнего устойчивого объёма данных.
Найдите проблемную файловую систему, сравните ёмкость и inode, сузьте владельца проходами du в её пределах. Объясните разницу с помощью проверки журналов, кэша, точек монтирования и удалённых открытых файлов. Освобождайте только известные восстанавливаемые данные через их владельца и проверяйте тот же раздел.
df -h показывает свободное?Могли закончиться inode, действовать квота или путь находиться в другой точке монтирования. Проверьте для него df -i и findmnt -T.
du меньше df?Так бывает из-за удалённых открытых файлов, метаданных, резервов, снимков, скрытых монтированием данных или недоступных каталогов.
Не по общему правилу. Определите владельца и политику; для systemd journal используйте ограниченный vacuum архивных файлов.
du -x?Пропускает каталоги на других файловых системах. Так измерение остаётся в пределах заполненного раздела и не включает посторонние диски или сетевые ресурсы.
du -d в Linux и macOS?-d N ограничивает вывод каталогами не глубже N уровней от указанного пути. В GNU du на Linux это короткая форма --max-depth=N[2], поэтому du -x -h -d 1 / даёт тот же ограниченный первый проход, что и команда выше. BSD-версия du в macOS тоже принимает -d, -x и -h, но не длинные параметры GNU вроде --max-depth; проверьте установленную версию командой man du на Mac.
apt-get clean программы?Нет. Он удаляет загруженный кэш APT; в будущем архивы придётся скачать снова.
Последний процесс должен закрыть его, обычно при контролируемом перезапуске службы или перечитывании её конфигурации. Повторное удаление пути ничего не даёт.
Нет. Сначала установите владельца, назначение, резервную копию и поддерживаемую политику хранения.
Отказ от ответственности: Разметка дисков, файловые системы, квоты, снимки и процедуры служб различаются. Для важных систем сохраняйте резервные копии и доступ восстановления.
Источники:
Sources checked 4 октября 2026 г.
Рекомендуемые статьи:
Зарегистрируйтесь и попробуйте все премиум-функции бесплатно.
*Только для новых пользователей. Один пробный период на пользователя.





