Domyślnie Linux rezerwuje pewną część systemu plików dla użytkownika root, przynajmniej na ext4 (aby uniemożliwić zwykłym użytkownikom całkowite zapełnienie dysku i awarię systemu oraz zmniejszenie fragmentacji). Jednak df
wyświetla tylko wolne miejsce widoczne dla zwykłych użytkowników (nawet gdy jest uruchamiane jako root). Jak wyświetlić „rzeczywistą” wolną przestrzeń, którą można by zrootować?
źródło
tune2fs -l /dev/DEVICE | egrep "Block count|Reserved block count"
. Np. Dla mojej partycji „bufor multimedialny”:Block count: 2621440
iReserved block count: 128449
: 4,9% dostępnych bloków (konserwatywne ustawienie, aby zapobiec fragmentacji).cut
polecenia: pola można wybieraćawk
bezpośrednio. W rzeczywistościcut
polecenie nie działało dla mnie zgodnie z oczekiwaniami. W każdym razie dałem inną odpowiedź, która powinna dać bardziej precyzyjną odpowiedź.tune2fs -m <percentage> <device-name>
aby zmienić miejsce na dysku zarezerwowane tylko dla użytkownika root.sudo tune2fs -l $(df | grep -E '/$' | cut -d\ -f 1) | egrep "Reserved block count|Block size" | paste -sd\ | awk '{print ($4 * $7 / ( 1024 * 1024 ) ), "MB"}'
tune2fs /dev/sda1
lub nawet lepiejstat -f -c '%a blocks free and %f blocks free for root (%S bytes per block)' /
Za pomocą polecenia tune2fs (znajdującego się w / sbin / tune2fs ) możesz łatwo określić zarezerwowane miejsce : (i więcej!)
Podam informacje o moim systemie w celach informacyjnych, zamierzam usunąć niepotrzebne linie, które nie są ważne dla tego pytania:
Nagłówek ... i nazwa woluminu, opisuję wszystkie dyski, ułatwia ich identyfikację w razie potrzeby.
NAPRAWDĘ chcę, żeby to było „czyste”, gdy system jest uruchomiony. Szczery!
W tym miejscu zaczynają się informacje o pojemności pamięci:
Tutaj możesz zobaczyć, że mam w sumie 121 179 648 bloków ... o rozmiarze bloku 4K (4096), który mnoży się do dużej liczby (462-GB GB). (Rozmiar bloku podano poniżej)
I zarezerwowane bloki ... patrząc na liczbę powyżej i liczbę poniżej ... powinieneś być w stanie stosunkowo szybko dowiedzieć się, że mam 1% zarezerwowane. W tym przypadku (4,62 GB)
Ile obecnie wolnego miejsca jest dostępne? Tutaj!
I najważniejszy rozmiar bloku. Przydatne do mnożenia.
Linie te mówią, KTO bloki są zarezerwowane dla ... użytkownika 0, w tym przypadku root
Dostępnych jest znacznie więcej informacji, ale powinno to umożliwić szybkie ustalenie, ile jest dostępnych, a ile więcej jest zarezerwowanych dla użytkownika root. Prosta matematyka.
Mam nadzieję że to pomoże. Pamiętaj ... strony man są twoimi przyjaciółmi.
źródło
Wyświetla wolne miejsce w bajtach partycji związane z „/ path”
Aby go uruchomić, nie musisz być superużytkownikiem.
BTW Nie do końca rozumiem, na czym polega różnica
Rozmiar bloku% s (dla szybszych transferów)
Podstawowy rozmiar bloku% S (dla liczby bloków)
w użyciu
stat
.źródło
bc
przeliczyć dane wyjściowe, aby uzyskać liczbę bajtów, a nawet użyć,--format='%f*%S/1024/1024/1024' | bc
aby uzyskać kilobajty / megabajty / gigabajty, w zależności od liczby wybranych dywizji.$(( ... ))
wykonuje obliczenia, ale powoduje tylko całkowitą część ilorazu (jeśli dodasz dzielenie). A może masz na myśli, że twoja powłoka nie obsługuje arytmetyki?bc
zamiast tego możesz użyć ilorazu z dowolną precyzją, jeśli tego potrzebujesz.