Czy ext4
systemy plików wymagają defragmentacji? Jeśli tak, to jak je zdefragmentować?
Jeśli nie, czy możesz napisać proste wyjaśnienie, dlaczego nie trzeba ich defragmentować?
filesystems
defragment
ext4
BenjiWiebe
źródło
źródło
The underlying filesystems used by Ubuntu, like ext2 and ext3, simply don't need defragmenting because they don't fragment files in the same way as NTFS. There are more details at
http://en.wikipedia.org/wiki/Ext3#Defragmentation
.
Odpowiedzi:
Tak (ale bardzo rzadko).
Skopiuj wszystkie pliki z partycji, usuń pliki z partycji, a następnie skopiuj pliki z powrotem na partycję. System plików inteligentnie przydzieli pliki podczas ich kopiowania z powrotem na dysk.
ext4
działa w bardziej inteligentny sposób niż tylko dodawanie nowych plików do następnej dostępnej przestrzeni. Zamiast umieszczać wiele plików blisko siebie na dysku twardym, systemy plików Linux rozpraszają różne pliki na całym dysku, pozostawiając między nimi dużą ilość wolnego miejsca. Kiedy plik jest edytowany i musi się powiększać, zwykle jest wystarczająco dużo wolnego miejsca do powiększenia pliku. Jeśli dojdzie do fragmentacji, system plików spróbuje przenieść pliki, aby zmniejszyć fragmentację podczas normalnego użytkowania, bez potrzeby używania narzędzia do defragmentacji.Dzięki komentarzowi @Green Reaper moją uwagę zwrócił e4defrag .
źródło
Używam partycji ext4 od ponad roku. Często zabrakło mi miejsca, przenosiłem i wyrzucałem wiele plików itp. Itd. Te rzeczy są złe na fragmentację, a wczoraj po raz pierwszy sprawdziłem fragmentację i tylko 2 pliki (nie%, tylko dwa pliki) zostały pofragmentowane .
Na partycji Windows, która była używana przez około rok dłużej i było dostępne znacznie więcej wolnego miejsca, mam fragmentację 95%.
Więc nie, naprawdę nie musisz defragmentować ext4 i jeśli chcesz być pewien, pozostaw domyślną wolną przestrzeń dla ext4 (domyślnie jest to 5%, można to zmienić
ex2tunefs -m X
).źródło
extent
opcją (jest on domyślny w najnowszych dystrybucjach), możesz sprawdzić fragmentację na nime4defrag -c /path/to/check
i defragmentować go bez podłączaniae4defrag /path/to/check
. Ale jeśli masz wystarczająco dużo wolnego miejsca, nie musisz tego robić.