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

Eric Cloninger
źródło
1
Czy sprawdziłeś, dlaczego df i du pokazują różne wyniki ?
jokerdino
@ 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.

Michel Samia
źródło
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.

mpontillo
źródło
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.

mdpc
źródło
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).

użytkownik_1729
źródło
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.

użytkownik163269
źródło
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.

psusi
źródło
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).

Tim Small
źródło