Ubuntu Ubuntu Linux

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

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

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

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

В этой статье
  1. Что означает проблема и кому подходит инструкция
  2. Возможные причины и отличительные признаки
  3. Диагностика и пошаговое устранение
  4. Как убедиться, что неисправность устранена
  5. Если результат не получен

#Что означает проблема и кому подходит инструкция

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

#Возможные причины и отличительные признаки

Возможная причинаКак узнатьЧто делать
Удалённый файл всё ещё открытПроцесс держит файловый дескриптор после удаления лога.lsof показывает (deleted) с большим размером.После сохранения данных корректно перезапустить только нужный процесс.
Под каталогом скрыто смонтированное устройствоdu и df могут измерять разные файловые системы.findmnt показывает вложенные точки и другие источники.Сравнить строго одну и ту же файловую систему.
Резерв для root или метаданныеНа ext4 часть блоков зарезервирована; inode и служебные данные тоже занимают место.df -i, tune2fs и тип файловой системы проясняют картину.Не менять резерв вслепую на корневом разделе.

#Диагностика и пошаговое устранение

  1. 1. Сверьте один и тот же разделОткройте Терминал Ubuntu. Команда df -h / покажет занятые блоки корня; findmnt -T / — фактический раздел. du -x остаётся на одной файловой системе, что важно для сравнения. Если проблема не в корне, замените / на точный путь.
  2. du только читает, но может выполняться долго; не запускайте часто на загруженном диске
    Linux · Терминал (Bash)КомандаНужен sudo
    du только читает, но может выполняться долго; не запускайте часто на загруженном диске.
    df -h /
    df -i /
    findmnt -T /
    sudo du -xhd1 / 2>/dev/null
  1. 2. Учитывайте скрытые файлы и точки монтированияЗапуск du без прав администратора не видит чужие каталоги и занижает сумму. Убедитесь, что сравниваются не разные диски, а du -x охватывает нужный раздел. Просмотрите точки монтирования: под ними могли скрыться старые файлы, созданные в каталог до подключения носителя. Не размонтируйте системные разделы ради проверки.
  2. Только чтение, вывод может содержать личные имена каталогов
    Linux · Терминал (Bash)КомандаНужен sudo
    Только чтение, вывод может содержать личные имена каталогов.
    findmnt -R /
    sudo du -xhd1 /var 2>/dev/null
  1. 3. Проверьте удалённые, но ещё открытые файлыЕсли пакет lsof установлен, выполните команду с правами администратора и ищите строки deleted; большой log, занятый работающим процессом, не освободится, пока процесс не закроет файл. Не очищайте файловый дескриптор через /proc наугад: можно потерять данные и нарушить запись.
    Linux · Терминал (Bash)КомандаНужен sudo
    Только просмотр открытых файлов; если lsof отсутствует, установку согласуйте отдельно.
    sudo lsof +L1
  1. 4. Если найден удалённый журнал, выясните владельца процессаВ выводе lsof есть COMMAND и PID. Определите соответствующую службу через systemctl status PID (в некоторых версиях systemctl поддерживает поиск по PID) или ps -p PID -o .... Перед перезапуском создайте копию нужного лога или свяжитесь с администратором приложения. Перезапуск службы освободит дескриптор, но оборвёт активные соединения.
  2. PID — действительный номер из lsof; не запускайте буквенный PID
    Linux · Терминал (Bash)Команда
    PID — действительный номер из lsof; не запускайте буквенный PID.
    ps -p PID -o pid,user,cmd
  1. 5. Проверьте свойства файловой системыПосмотрите тип ФС через findmnt; для ext4 зарезервированные блоки учитываются особо. Не применяйте tune2fs к XFS, Btrfs, ZFS или контейнерному слою. На Btrfs снимки могут учитывать данные иначе — нужна диагностика средствами Btrfs, а не du.
    Linux · Терминал (Bash)Команда
    Никаких действий с суперблоком и резервом без резервной копии.
    findmnt -T / -o TARGET,SOURCE,FSTYPE,OPTIONS
    df -h /
  1. 6. Повторите сравнение после безопасного освобожденияКогда установленный процесс корректно закрыт или файл удалён штатным средством, повторите df и du на той же файловой системе. Если разрыв не изменился, проверьте доступность inode, состояние снимков и ошибки ФС; не стирайте журналы и системные каталоги вслепую.
  2. Проверка соответствия данных; команды ничего не удаляют
    Linux · Терминал (Bash)КомандаНужен sudo
    Проверка соответствия данных; команды ничего не удаляют.
    df -h /
    sudo du -xhd1 / 2>/dev/null
    df -i /

#Как убедиться, что неисправность устранена

Результат — уменьшение реальной занятости по df с выясненной причиной расхождения. Если сокращение лишь визуально в du, место приложениям ещё не возвращено.

#Если результат не получен

Не повторяйте опасные действия наугад. Сохраните точную формулировку ошибки, вывод диагностики без секретов, версию Ubuntu и данные о затронутом компоненте. Верните лишь собственные изменения из резервной копии; если затронута загрузка, диски или рабочий сервер, воспользуйтесь консолью восстановления либо помощью администратора.

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

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

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