df pokazuje całe zajęte miejsce, ale du się nie sumuje


28

Mam problem z Ubuntu 12.04 LTS. Po raz drugi napotkałem ten problem w ciągu ostatnich 3 tygodni. Pierwszy raz opisano w tym zamkniętym pytaniu na StackOverflow . W wersji TL; DR udało mi się wykorzystać wszystkie i-węzły w systemie 450G ext4 kompilując i budując stos Androida mniej niż 20 razy.

Myślałem, że rozwiązuję problem, ponownie formatując dysk jako XFS, aby pamięć i-węzłów mogła się powiększyć.

Dziś rano po zrobieniu kompilacji w nocy mam mniej niż 1 GB wolnego miejsca. Na tym komputerze nie ma nic poza tym, co jest potrzebne do zbudowania Androida. Zrobiłem 5 wszystkich kompilacji na źródłach platformy. Kompilacja tworzy kilka plików, a następnie usuwam je wkrótce za pomocą make clean. Nie mam mniej niż 1 GB, ale narzędzia zgłaszają to w ten sposób. Usunąłem kilka plików tymczasowych i „uwolniłem” około 40 GB. Kilka godzin później, po prostu na biegu jałowym, wróciłem do mniej niż 1 GB wolnego miejsca.

Uruchomienie Ubuntu z dysku flash zwraca następujące informacje dla partycji ...

$ 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-

Oto dowód, że coś jest nie tak. Kiedy uruchamiam du(z i bez --appident-size) lub wizualny Analizator Wykorzystania Dysku, pokazuję, że tak naprawdę używam tylko około 35 GB. 98,7% zajętego miejsca jest zajęte /home/eric, ale dusię nie sumuje. Rozbieżność jest pomiędzy /home/erici/home/eric/android

wprowadź opis zdjęcia tutaj

Przeczytałem odpowiednie pytania tutaj i na SO i zwykle sugerują, że to usunięte pliki przechowywane przez otwarte procesy. Uruchomiłem ponownie dysk flash, aby uruchomić ten test, więc nie powinny to być otwarte pliki. FWIW, / tmp jest pusty.

Czy istnieje narzędzie, które mogę zainstalować na dysku flash, aby odzyskać „utraconą” przestrzeń? Mogę spróbować zwolnić pamięć w systemie i uruchomić ją tam, ale zakładam, że lepiej to zrobić z dysku flash.

Czy powinienem konfigurować ten system w inny sposób? Wolę nie czyścić i instalować, ale potrzebuję zrównoważonego systemu do budowania Androida.

OBSERWACJA - W zeszłym tygodniu musiałem zrezygnować z instalacji i ponownie zainstalować 12.04 w celu wykonania pracy. Gdy w tym tygodniu będę ponownie przeglądać wersje Androida, będę uważnie obserwować użycie dysku i podawać informacje, gdy będę się więcej uczyć.

Dzięki



@ jokerdino Tak, postępowałem zgodnie ze wskazówkami w tym wątku i niektórych innych podobnych wątkach. Zrestartowałem system, a także zrestartowałem z dysku flash. Po ponownym uruchomieniu system nadal pokazuje cały dysk jako zajęty. Dzięki.
Eric Cloninger

Dane plików w Linuksie są liczone jako referencje, dlatego nie trzeba restartować tak często jak w Windows. Być może utrzymywałeś emulator podczas nadpisywania jego plików danych pod jego plecami?
aquaherd

@EricCloninger Muszę dodać siebie do listy użytkowników, jak to się stało, że ten sam problem. To jest moje pytanie za pomocą 12.10 i to jest pytanie użytkownika 11.04.
Lucio,

Ponadto skopiuj i wklej dane wyjściowe z ls -lah ~pliku paste.ubuntu.com i połącz je w swoim pytaniu.
Lucio,

Odpowiedzi:


19

W systemie Oracle Linux dzieje się tak, gdy masz (dużo / dużych) plików, które są usuwane, ale nadal otwarte przez uruchomiony proces. Następnie pomaga zatrzymanie procesów lub ponowne uruchomienie komputera.


Pracowałem dla mnie na serwerze przytulającym pliki dziennika. Dzięki!
micet

12
Użyj lsof +L1, aby sprawdzić identyfikator procesu i zabić go.
Jeff Tian

3

Niedawno wpadłem na to, aw moim przypadku fscktrzeba było uruchomić.

Zrobiłem to touch /forcefsck && rebooti po kilku minutach serwer powrócił do trybu online i nagle moje brakujące 6 GB zostało zwolnione.


1

Zanim przejdziesz za daleko ... przejdź do trybu pojedynczego użytkownika i wykonaj PEŁNY fsck (mam na myśli pełny fsck -f /dev/sda5) system plików i zobacz, co on pokazuje. Miejsce może znajdować się jako części obszarów problemowych na dysku lub niedopasowane między tym, co jest przydzielone, a tym, co jest na dysku.


sudo fsck -f / dev / sda5 z dysku flash nic nie zrobiło, ponieważ dysk ma format XFS. Zaleca mi użycie xfs_check . xfs_check / dev / sda5 nie zwrócił żadnych wyników. xfs_repair / dev / sda5 przejrzał swoje naprawy, ale nie zgłosił nic niezwykłego. Po obu nadal jestem w 99% pełny. Dzięki
Eric Cloninger

1

Możemy zrobić test, dustwierdzimy , że masz 10 GB wolnego miejsca, a df300 MB, czy możesz napisać plik (lub kilka plików) o rozmiarze, powiedzmy, 2 GB? Jeśli możesz, oznacza to, że df jest po prostu zły (i tak naprawdę nie ma problemu z „utraconą przestrzenią”). Jeśli nie, to dujest źle (co będzie interesujące).


1

Nie znalazłem przyczyny tego problemu, ale jest on unikalny dla Ubuntu 12.04.

Właśnie zakładając nowy serwer, zacząłem od Ubuntu 12.04 i na to wpadłem; du wykazał zużycie około 111 GiB, zaś df około 170 GiB.

Ładowanie przy użyciu systemrescuecd 3.3.0 i ponowne sprawdzenie pokazało różnicę mniejszą niż 1 GiB.

Pozostawiając partycję i system plików (to jest ext4) bez zmian, usunąłem katalogi ubuntu z drogi i zainstalowałem Debiana 7.0. Znowu różnica między du i df wynosiła <1 GiB.

Z Ubuntu 10.04, na tej samej partycji i ext4 fs:

Z df -m /,

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

oraz du -mx,

tail -1 /root/diskuse 
406920  .

co jest wystarczająco blisko.


0

Obraz, który pisał mówi ci, gdzie jest używana przestrzeń: /home/eric. Wygląda na to, że masz tam bardzo duży plik, zajmujący całe miejsce lub być może dużą liczbę mniejszych plików. Otwórz katalog domowy, pamiętaj, aby wyświetlić ukryte pliki ( Ctrl+ Hw Nautilus) i sortuj według rozmiaru pliku.


0

Jest to często spowodowane plikami w katalogu, w którym jest również zamontowany inny system plików. Typową poprawką jest uruchamianie z dysku ratunkowego lub w trybie pojedynczego użytkownika i opróżnianie katalogów po sprawdzeniu, że nie są one używane jako punkty montowania ( cat /proc/mountslub df -h).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.