Czy systemy plików ext4 wymagają defragmentacji?

43

Czy ext4systemy 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ć?

BenjiWiebe
źródło
4
Jeśli jesteś tak zainteresowany, jak ci się wydaje, być może ten artykuł byłby interesujący w tym zakresie: Projekt Fedora , konkretnie od strony 179 (która jest tak naprawdę na stronie 3)
nerdwaller
@nerdwaller Interesujące, ale dla mnie trochę dogłębne, aby w pełni zrozumieć.
BenjiWiebe
1
Podobne pytanie w Ask Ubuntu: Dlaczego defragmentacja nie jest konieczna? , gdzie obecnie akceptowana odpowiedź to: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 athttp://en.wikipedia.org/wiki/Ext3#Defragmentation.
Przełom

Odpowiedzi:

30

Czy ext4systemy plików wymagają defragmentacji?

Tak (ale bardzo rzadko).

Jeśli tak, to jak je zdefragmentować?

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.

Jeśli nie, czy możesz napisać proste wyjaśnienie, dlaczego nie trzeba ich defragmentować?

ext4dział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 .

orzechy
źródło
Więc nie ma oprogramowania do defragmentacji na żądanie?
BenjiWiebe
9
Link do źródła, z którego kopiujesz / wklejasz,
Christophe L
4
Narzędzie znane jako e4defrag może być użyte do defragmentacji ext4. Jest dostarczany przez e2fsprogs w większości dystrybucji. ext4 próbuje także uniknąć fragmentacji , ale nie zawsze kończy się to powodzeniem.
GreenReaper,
Czy istnieje sposób, aby wyświetlić odsetek pofragmentowanych plików?
Aaron Franke
Pamiętaj, że e4defrag defragmentuje tylko pliki, a nie wolne miejsce. Jeśli twoje wolne miejsce jest pofragmentowane, e4defrag nie będzie działał dobrze, ponieważ nie ma ciągłego miejsca do przeniesienia jakichkolwiek plików.
jlh
19

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).

zahjin
źródło
1
Jak sprawdzasz fragmentację?
Sparhawk
13
Jeśli masz system plików ext4 utworzony z extentopcją (jest on domyślny w najnowszych dystrybucjach), możesz sprawdzić fragmentację na nim e4defrag -c /path/to/checki defragmentować go bez podłączania e4defrag /path/to/check. Ale jeśli masz wystarczająco dużo wolnego miejsca, nie musisz tego robić.
gerlos