„Brak miejsca na urządzeniu”, df pokazuje rozbieżność


15

Kilka godzin temu moja partycja root zapełniła się, przeniosłem z niej pliki i raporty df:

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda1             183G  174G     0 100% /

Tak więc powinno być 9 GB za darmo, ale skorzystaj z raportów 0, a użycie jest nadal na 100%.

Testowałem jako root, np

# echo test >a ; cat a
test

działa zgodnie z oczekiwaniami; jednak jako zwykły użytkownik nadal pojawia się błąd:

$ echo test >a ; cat a
bash: echo: write error: No space left on device

Główny katalog domowy, w którym przeprowadziłem pozytywny test, a mój katalog domowy znajdują się na tej samej partycji. Wpis fstab to:

/dev/hda1 / ext3 noatime,defaults,errors=remount-ro 0 1

Odpowiedzi:


34

Większość systemów archiwizacyjnych rezerwuje określony procent dla roota, więc nadal możesz zalogować się jako root i rozwiązać problemy z miejscem na dysku. Zwykle jest to 5%. 9 GB to około 5% z 183 GB, więc miałoby to sens. Możesz sprawdzić, ile jest zarezerwowane za pomocą tune2fs:

# tune2fs -l /dev/sda1 | grep -i reserved
Reserved block count:     936488
Reserved GDT blocks:      1019
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)

Możesz to zmodyfikować za pomocą

# tune2fs -m 3 /dev/sda1
tune2fs 1.41.9 (22-Aug-2009)
Setting reserved blocks percentage to 3% (561893 blocks)

Na nowoczesnych dużych dyskach 5% jest prawdopodobnie nieco nadmierne i prawdopodobnie chcesz je obniżyć. Nie chcesz ustawić go na zero.


1
Nie mogę uwierzyć, że o tym nie wiedziałem. Lepiej nie mówię, jak długo używam Linuksa ...
zaznacz

@ nfm Hej, od lat robię podstawową administrację Linuksem na domowych komputerach i nigdy o tym nie słyszałem. +1 za wspaniałe informacje :-)
Topher Fangio

5

im with bob, spróbuj df -i, jeśli masz na przykład kilka źle wyprowadzanych crontabs, twój katalog / var / spool / clientmqueue / może zostać zapełniony


3

Spójrz także na INODES. W instalacji „waniliowej”, jeśli masz wiele małych plików, mogą one zużywać i-węzły, ale nie miejsce. Zobaczysz, że masz wolne miejsce, ale ponieważ twoje i-węzły są pełne, nie będziesz mógł z niego korzystać.


3
Większość współczesnych jednorożców ma bardzo dużą liczbę i-węzłów nawet na małych systemach plików. Czasami jest to problem, ale biorąc pod uwagę, że użytkownik jest w stanie utworzyć plik c, jest mało prawdopodobne, aby był to problem z węzłem. (wpisy katalogu wymagają i-węzłów, nawet jeśli nie wymagają spacji).
Chris

2

„Domyślnie każdy system plików w Uniksie ma trochę miejsca zarezerwowanego dla superużytkownika (root). Oznacza to, że żaden zwykły użytkownik Uniksa nie może wypełnić twojego systemu plików do 100%, a więc zawsze będzie miał wystarczająco dużo wolnego miejsca, aby kontynuować normalne działanie. „

Od: http://www.unixtutorial.org/commands/tune2fs/


1

Inną sprawą do sprawdzenia jest sprawdzenie, czy w tym systemie plików są jakieś otwarte pliki (zwłaszcza dzienniki). Usunięcie plików nie wyczyści miejsca na dysku, dopóki plik nie zostanie faktycznie zamknięty.


0

Założę się o 1 $, że Clyde ma odpowiedź. Proces ma otwarty plik na tym urządzeniu. W Linuksie plik nie jest faktycznie usuwany, dopóki proces trzymający go otwarty nie puści go.

Zacząłbym od: lsof | grep hda1

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.