Podczas tworzenia systemu plików Ext3 lub Ext4, system rezerwuje dla siebie 5% z rozmiaru partycji. Do czego potrzebna mu jest ta przestrzeń? Zapobiega ona fragmentacji systemu plików oraz umożliwia działanie procesów systemowych np. syslogd(8), podczas przepełnienia dysku. Jest to bardzo przydatna cecha dla systemu, natomiast, czy potrzebujemy jej na partycji, która służy nam jako magazyn plików np. zdjęć i filmów?

Przy obecnych rozmiarach dysków i partycji ten “utracony” 5% to naprawdę sporo. Dla przestrzeni 1TB możemy odzyskać 50GB, a to całkiem pokaźna ilość wolnego miejsca do wykorzystania.

Jak odzyskać to miejsce? Posłuży nam do tego program tune2fs. Spójrzmy na partycję /dev/sdb1, zamontowaną w katalogu /mnt.

[root@localhost ~]# df -h
System plików         rozm. użyte dost. %uż. zamont. na
/dev/mapper/VolGroup-lv_root
                      3,5G  698M  2,6G  21% /
tmpfs                 250M     0  250M   0% /dev/shm
/dev/sda1             485M   64M  396M  14% /boot
/dev/sdb1              99G  188M   94G   1% /mnt

Dostępne mamy 94G. Wystarczy wydać polecenie tune2fs -m 0 /dev/sdb1, aby odzyskać wydzielone miejsce dla systemu.

[root@localhost ~]# df -h
System plików         rozm. użyte dost. %uż. zamont. na
/dev/mapper/VolGroup-lv_root
                      3,5G  696M  2,6G  21% /
tmpfs                 250M     0  250M   0% /dev/shm
/dev/sda1             485M   64M  396M  14% /boot
/dev/sdb1              99G  188M   99G   1% /mnt

W ten sposób zredukowaliśmy ilość zarezerwowanej pojemności z 5% do 0%. Nic nie stoi na przeszkodzie, by ustawić tę wartość na 10% czy 0.5%. Operacje te są bezpieczne i można je wykonywać na zamontowanym systemie plików. Nic nie stoi na przeszkodzie, aby wcześniej go odmontować, a następnie wykonać operacje.

Przestrzeń rezerwowaną przez system plików, możemy również ustalić na etapie formatowania partycji. Wydajemy wtedy polecenie np. mkfs.ext4 -m 0 /dev/sdb1:

[root@localhost ~]# mkfs.ext4 -m 0 /dev/sdb1 
mke2fs 1.41.12 (17-May-2010)
Etykieta systemu plików=
Typ OS: Linux
Rozmiar bloku=4096 (log=2)
Rozmiar fragmentu=4096 (log=2)
Stride=0 bloków, szerokość Stripe=0 bloków
6553600 i-węzłów, 26214392 bloków
0 bloków (0.00%) zarezerwowanych dla superużytkownika
Pierwszy blok danych=0
Maksymalna liczba bloków systemu plików=0
800 grup bloków
32768 bloków w grupie, 32768 fragmentów w grupie
8192 i-węzłów w grupie
Kopie zapasowe superbloku zapisane w blokach: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872

Zapis tablicy i-węzłów: zakończono                      
Tworzenie kroniki (32768 bloków): wykonano
Zapis superbloków i podsumowania systemu plików: wykonano

Ten system plików będzie automatycznie sprawdzany co każde 20 montowań
lub co 180 dni, zależnie co nastąpi pierwsze. Można to zmienić poprzez
tune2fs -c lub -i.

Gigabajty piechotą nie chodzą i czasem te 5% to naprawdę dużo. Warto pomyśleć o dodatkowej przestrzeni, zwłaszcza na komputerach domowych.

  • Druedain

    Jakie są konsekwencje tego dla fragmentacji?

    Z czego wynika domyślne 5%? Jest to takie na wszelki wypadek, czy można sobie jakoś wyliczyć ile potrzeba tych % dla partycji o określonym rozmiarze?

    • Michał

      Przy partycji "multimedialnej" nie ma się co przejmować fragmentacją.

    • Admn

      Warto wspomnieć, że to wolne miejsce przeznaczon jest również na lost+found. Jak ustawimy na 0 to fsck nie zostawi tam danych.

  • linux.zsk.p.lodz.pl

    Kamilu, świetnie przepisany z man- a wstęp :)
    Warto dodać, że oprócz zmiany wielkości zarezerwowanego obszaru można tez ustawić jego dostępność dla dowolnego użytkownika (tune2fs -u) lub grupy (-g). To sie może przydać jeżeli dopuszczamy innych do korzystania z systemu plików.

  • linux.zsk.p.lodz.pl

    Byłbym zapomniał. Te 5% (a tak naprawdę tyle, ile domyślnie przyjmuje mke2fs dla danej dystrybucji) liczy się od rozmiaru systemu plików a nie partycji.

  • linux.zsk.p.lodz.pl

    Byłbym zapomniał. Te 5% liczy się od wielkości systemu plików a nie partycji.

  • marcinsud

    Jak ktoś kiedyś instalował debiana w trybie zaawansowanym to pewnie mu się to rzuciło w oczy. Dobry tekst.

  • Greg

    Super! Odzyskałem ponad 75GB!!! Wypas! Więcej takich artykułów :)

  • Katiusza

    Czy ta operacja jest bezpieczna? Jak mam na partycji sporo filmów i muzyki to mogę ją wykonać czy stracę dane?

  • linux.zsk.p.lodz.pl

    Jest bezpieczna. To tylko zmiana parametru zapisanego w superbloku systemu plików. Coś jakby ustawienie quoty. Zmiana ta nie dotyka żadnego z istniejących plików. Przy podejściu paranoidalnym możnaby się pokusić o wykonanie kopii superbloku przed operacją, ale to nie jest potrzebne.

  • Tomas

    Wykonałem te operacje i mam 15 GB więcej na dysku. Świetny pomysł :) A co się stanie jak wykonam to na partycji głównej znaczy się / i ustawię tam 0. Czy system przestanie działać czy się wysypie?

    • Admn

      Nic :) Linux nadal będzie działał :D

    • mak

      Panie "admin", to fascynujące że nie znając układu systemów plików kolegi potrafisz udzielić tak jednoznacznej odpowiedzi.
      @Tomas – działać będzie. Ale jeżeli masz /tmp albo /home jako zwykły podkatalog / (nie jako osobny system plików) a przy tym mocno już zajęty / (inaczej by Cię chyba nie interesowało pozyskiwanie tam miejsca) to możesz mieć problemy ze stabilnością systemu. W razie wątpliwości może "admin" w ramach rehabilitacji Ci wyjaśni dokładnie dlaczego.

  • Palmiano

    Dzięki :D Powiększyłem sobie dysk o całe 30GB :D zaczynało mi brakować i artykuł jak znalazł ;-)