Debian Debian 12Debian 13

Debian Linux: диск заполнен, но du показывает меньше использованного места

  • Обновлено
  • Чтение ≈ 3 минуты
  • Нужны права администратора

Краткий ответ

На Debian df показывает занятое пространство на разделе значительно больше суммы каталогов от du. Такое расхождение возможно при удалённых, но ещё открытых файлах, отдельных точках монтирования, снимках файловой системы и резервировании блоков.

В этой статье
  1. Когда возникает ошибка в Debian и какие условия важны
  2. Причины и как отличить их друг от друга
  3. Пошаговая диагностика и устранение
  4. Проверка результата и действия при неуспехе

#Когда возникает ошибка в Debian и какие условия важны

На Debian df показывает занятое пространство на разделе значительно больше суммы каталогов от du. Такое расхождение возможно при удалённых, но ещё открытых файлах, отдельных точках монтирования, снимках файловой системы и резервировании блоков.

#Причины и как отличить их друг от друга

Возможная причинаКак узнатьЧто делать
Удалённый файл остаётся открытым процессомdf не уменьшился после удаления большого лога, du его больше не находит.Найти fd с пометкой deleted и штатно закрыть владельца.
Сравниваются разные файловые системыdu идёт по каталогу, а df учитывает другой том или снимки.Сверить findmnt и ограничить du одной файловой системой.
Служебные блоки или снимкиПри ext4 часть блоков зарезервирована; на Btrfs/ZFS возможны снимки.Проверить тип ФС и считать её особенности.

#Пошаговая диагностика и устранение

  1. 1. Найдите раздел, на котором реально закончились блокиОткройте терминал Debian и прочитайте df -hT и df -i. Первое показывает байты, второе — количество inode. Если inode заполнены, удаление одного крупного файла может не решить проблему, а создание новых мелких файлов тоже будет запрещено. Не удаляйте системные каталоги вслепую.
  2. Чтение данных и диагностика
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    df -hT
    df -i
  1. 2. Сверьте точку монтирования и измерение каталоговУкажите собственную точку в findmnt, затем запускайте du -x на той же файловой системе. Ключ -x не пересекает другие монтирования, а -s суммирует. На огромном разделе обход может идти долго и повышать дисковую нагрузку; не запускайте многократные измерения в часы пика.
    Linux · Терминал (Bash)КомандаНужен sudo
    Только чтение файлов, может потребоваться время.
    findmnt -T /var
    sudo du -xsh /var
  1. 3. Проверьте удалённые, но ещё открытые файлыЕсли большой журнал удалён, но процесс продолжает его писать, диск не освобождается до закрытия дескриптора. При наличии lsof используйте +L1 и ищите deleted с большим размером. Не обнуляйте произвольно /proc/PID/fd/NN: можно повредить данные запущенной службы.
    Linux · Терминал (Bash)КомандаНужен sudo
    lsof может не быть установлен в минимальном Debian.
    sudo lsof +L1
  1. 4. Определите, кто удерживает местоСопоставьте PID из lsof с именем процесса и конкретной службой через ps и systemctl status. Запланируйте штатную ротацию или перезапуск только этой службы после сохранения данных. Если процесс — база данных, сначала изучите механизм журналов самой БД, а не обрезайте открытые файлы.
  2. Чтение данных и диагностика
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    ps -p PID -o pid,user,comm,args
    systemctl --failed --no-pager
  1. 5. Проверьте файлы и каталоги системного журналаПри включённом постоянном journald размер журналов можно оценить journalctl --disk-usage. Очистка через vacuum изменяет историю диагностики; в статье это не предлагается автоматически. Если место занято /var/log, проверьте logrotate и реальные имена файлов вместо удаления всех архивов.
    Linux · Терминал (Bash)КомандаНужен sudo
    Оцениваем место, ничего не удаляем.
    journalctl --disk-usage
    sudo du -xsh /var/log
  1. 6. Учитывайте тип файловой системыПросмотрите findmnt и lsblk -f. Для ext4 разница между общим и доступным пространством может объясняться резервными блоками; для Btrfs и ZFS — снимками либо квотами. Не выполняйте tune2fs -m, btrfs balance или zfs destroy без понимания назначения тома и резервной копии.
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    findmnt -no SOURCE,FSTYPE,OPTIONS /
    lsblk -f
  1. 7. Подтвердите освобождение на том же разделеПосле безопасного устранения конкретной причины повторите df -hT и du -xsh на том же пути. Если показатели не изменились, проверьте другие открытые удалённые файлы и иные подтома; не запускайте массовое удаление ради числа в процентах.
  2. Сравнение должно выполняться по той же точке и файловой системе
    Linux · Терминал (Bash)КомандаНужен sudo
    Сравнение должно выполняться по той же точке и файловой системе.
    df -hT /var
    sudo du -xsh /var

#Проверка результата и действия при неуспехе

Проблема устранена, когда нужный раздел имеет запас блоков и inode, а разница df/du объясняется конкретным владельцем файлов либо особенностью файловой системы.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.