df показує весь простір, але du не додається


28

У мене проблема з Ubuntu 12.04 LTS. Це вдруге я стикався з цією проблемою за останні 3 тижні. Перший раз описаний у цьому закритому питанні на StackOverflow . Версія TL; DR - мені вдалося використовувати всі вставки в системі 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(з і без - видимого розміру) або візуального аналізатора використання диска, я показую, що я використовую лише близько 35 Гб або близько того. 98,7% використовуваного простору знаходиться /home/eric, але duне доповнює це. Розбіжність між /home/ericі/home/eric/android

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

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

Чи є інструмент, який я можу встановити на флешку, щоб відновити втрачений простір? Я можу спробувати звільнити пам'ять у системі та запустити її там, але я припускаю, що це краще зробити з флешки.

Чи слід налаштовувати цю систему по-іншому? Я б краще не робив іншого витирання та встановлення, але мені потрібна стійка система збірки Android.

FOLLOWUP - Мені довелося запустити установку минулого тижня та перевстановити 12.04, щоб завершити роботу. Коли я на цьому тижні знову переглядаю версії Android, я буду пильно стежити за використанням диска та надавати інформацію тут, коли я дізнаюся більше.

Спасибі



@jokerdino Так, я дотримувався вказівок у цій темі та деяких інших подібних ниток. Я перезапустив систему, а також перезапустив з флешки. Після перезавантаження система все ще показує весь диск як зайнятий. Спасибі.
Ерік Клонінгер

Дані про файли в Linux вважаються посиланнями, отже, вам не потрібно перезапускати так часто, як в Windows. Можливо, ви продовжували роботу емулятора під час перезаписування файлів даних під його спиною?
aquaherd

@EricCloninger Я повинен додати себе до списку користувачів, як сталася та сама проблема. Це моє запитання, використовуючи 12.10, і це питання про користувача 11.04.
Lucio

Крім того, скопіюйте та вставте вихідний ls -lah ~файл у paste.ubuntu.com та зв’яжіть його у своєму запитанні.
Lucio

Відповіді:


19

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


Працював для мене на сервері, обіймаючи файли журналів. Спасибі!
міцет

12
Використовуйте lsof +L1, щоб перевірити ідентифікатор процесу та вбити його.
Jeff Tian

3

Я нещодавно натрапив на це, і в моєму випадку fsckпотрібно було бігти.

Я зробив, touch /forcefsck && rebootі через кілька хвилин сервер знову був в Інтернеті, і раптом мій зниклий 6 Гб звільнився.


1

Перш ніж піти далеко ..... переведіть систему в режим єдиного користувача та зробіть FULL 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 Гб вільного місця, тоді як dfкаже 300 МБ, чи можете ви написати файл (або кілька файлів) розміром, скажімо, 2 ГБ? Якщо ви можете, це означає, що df просто не так (і насправді немає проблеми з "втраченим простором"). Якщо ні, то duнеправильно (що буде цікаво).


1

Я не знайшов причину цієї проблеми, але вона унікальна для ubuntu 12.04.

Тільки налаштувавши новий сервер, я почав з Ubuntu 12.04 і наткнувся на це; du показав близько 111 GiB, тоді як df був близько 170 GiB.

Завантаження за допомогою 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.