df показывает все занятое место, но du не складывается


28

У меня проблема с Ubuntu 12.04 LTS. Это второй раз, когда я столкнулся с этой проблемой за последние 3 недели. Первый раз описан в этом закрытом вопросе о StackOverflow . Версия TL; DR - мне удалось использовать все inode в системе 450G ext4, компилируя и собирая стек Android менее 20 раз.

Я думал, что решил проблему, переформатировав диск в XFS, чтобы хранилище inode могло расти.

Сегодня утром, выполнив сборку за ночь, у меня осталось менее 1 ГБ свободного места. На этой машине нет ничего, кроме того, что нужно для сборки Android. Я сделал 5 полных сборок на исходниках платформы. Сборка создает кучу файлов, а затем я удаляю их с помощью make clean. Я на самом деле не меньше 1 ГБ, но инструменты сообщают об этом таким образом. Я удалил кучу временных файлов и освободил около 40 ГБ. Пару часов спустя, просто на холостом ходу, я вернулся менее чем на 1 ГБ бесплатно.

Запуск Ubuntu с флешки возвращает следующее для раздела ...

$ df
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda5      468521456 468255460    265996 100% /media/f71c77eb-b4cc-

$ df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/sda5      1691760 624214 1067546   37% /media/f71c77eb-b4cc-

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda5       447G  447G  260M 100% /media/f71c77eb-b4cc-

Вот свидетельство того, что что-то не так. Когда я запускаю du(с и без --apparent-size) или визуальный анализатор использования диска, я показываю, что на самом деле я использую только около 35 ГБ или около того. 98,7% использованного пространства занято /home/eric, но duне суммирует с этим. Расхождение между /home/ericи/home/eric/android

введите описание изображения здесь

Я прочитал соответствующие вопросы здесь и в SO, и они обычно предполагают, что это удаленные файлы, хранящиеся в открытых процессах. Я перезагрузился на флешку, чтобы запустить этот тест, чтобы не было открытых файлов. FWIW, / tmp пуст.

Есть ли инструмент, который я могу установить на флэш-накопитель, чтобы восстановить «потерянное» пространство? Я могу попытаться освободить память в системе и запустить ее там, но я предполагаю, что лучше сделать это с флешки.

Должен ли я настраивать эту систему по-другому? Я бы предпочел не делать другие вайпы и устанавливать, но мне нужна устойчивая система сборки Android.

ПОСЛЕДОВАТЕЛЬНОСТЬ - Я должен был сбросить установку на прошлой неделе и переустановить 12.04, чтобы закончить работу. На этой неделе, когда я снова проверю сборки Android, я буду внимательно следить за использованием диска и сообщать информацию здесь, когда узнаю больше.

Благодарность



@jokerdino Да, я следовал указаниям в этой теме и некоторых других похожих темах. Я перезапустил систему, а также перезапустить с флешки. После перезагрузки система по-прежнему показывает весь диск как занятый. Спасибо.
Эрик Клонинджер,

Данные файлов в Linux подсчитываются по ссылкам, поэтому вам не нужно перезагружать их так часто, как в Windows. Возможно, вы поддерживали эмулятор во время перезаписи его файлов данных под его спиной?
Аквахард

@EricCloninger Я должен добавить себя в список пользователей, как произошла та же проблема. Это мой вопрос с использованием 12.10, и это вопрос пользователя 11.04.
Лусио

Кроме того, скопируйте и вставьте выходные данные ls -lah ~в paste.ubuntu.com и свяжите их в своем вопросе.
Лусио

Ответы:


19

В Oracle Linux это происходит, когда у вас есть (много / большие) файлы, которые удалены, но все еще открыты запущенным процессом. Тогда помогает остановка процессов или перезагрузка машины.


Работал для меня на сервере, обнимая файлы журнала. Благодарность!
miccet

12
Используйте lsof +L1, чтобы проверить идентификатор процесса и убить его.
Джефф Тиан

3

Я недавно столкнулся с этим, и в моем случае fsckнужно было бежать.

Я сделал это, touch /forcefsck && rebootи через несколько минут сервер снова подключился к сети, и вдруг мои недостающие 6 ГБ освободились.


1

Прежде чем вы зайдете далеко ... переведите систему в однопользовательский режим и выполните полный fsck (я действительно имею в виду полный fsck -f /dev/sda5) файловой системы и посмотрите, что она показывает. Вы можете найти пространство в виде частей проблемных областей на вашем диске или несоответствие между тем, что выделено, и тем, что присутствует на диске.


sudo fsck -f / dev / sda5 с флешки ничего не сделал, так как диск отформатирован в XFS. Он посоветовал мне использовать xfs_check . xfs_check / dev / sda5 не дал результатов. xfs_repair / dev / sda5 провела ремонт, но ничего необычного не сообщила. После обоих я все еще на 99% полон. Thx
Эрик Клонинджер

1

Мы можем провести тестирование, duесли у вас есть 10 ГБ свободного места, а у вас df300 МБ. Можете ли вы написать файл (или несколько файлов) размером, скажем, 2 ГБ? Если вы можете, это означает, что df просто неверен (и на самом деле нет проблемы «потерянного пространства»). Если нет, то duэто неправильно (что будет интересно).


1

Я не нашел причину этой проблемы, но она уникальна для Ubuntu 12.04.

Просто настраивая новый сервер, я начал с Ubuntu 12.04 и столкнулся с этим; du показал использование около 111 ГиБ, а df - около 170 ГиБ.

Загрузка с использованием systemrescuecd 3.3.0 и повторная проверка показали разницу менее 1 ГиБ.

Оставив раздел и файловую систему (это ext4) без изменений, я убрал каталоги ubuntu и установил Debian 7.0. Опять же, разница между du и df была <1 ГиБ.

С Ubuntu 10.04, на том же разделе и ext4 fs:

От df -m /,

Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/sda2              2814679    407164   2264538  16% /

и из du -mx,

tail -1 /root/diskuse 
406920  .

что достаточно близко


0

Изображение вы вывесили говорит вам , где используется пространство: /home/eric. Кажется, у вас есть очень большой файл, занимающий все пространство, или, возможно, большое количество небольших файлов. Откройте свой домашний каталог, убедитесь, что вы видите скрытые файлы ( Ctrl+ Hв Nautilus), и сортируйте по размеру файла.


0

Это часто вызывается файлами в каталоге, в котором также смонтирована другая файловая система. Типичное исправление - загрузка с аварийного диска или в однопользовательском режиме и очистка каталогов, убедившись, что они не используются в качестве точек монтирования ( cat /proc/mountsили df -h).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.