Co nie wymaga defragmentacji? Linux czy ext2 ext3 FS?


32

Dlaczego nie musisz defragmentować systemu Linux? Ponieważ używa systemu plików ext2 / ext3, czy może to Linux?

To istotne, ponieważ mam system podwójnego rozruchu (W7 / Ubuntu) i wspólną partycję (NTFS), do której dostęp może mieć oba systemy. Jeśli używam tej partycji z Linuksem, czy zostanie ona podzielona na fragmenty?

Kolejnym problemem są kontenery Truecrypt. Mam również dostęp do nich w systemach Linux i Windows, a są one FAT32. Czy ulegają fragmentacji przez działający na nich system Linux?


2
Inne odpowiedzi są dobre, ale pomiń jeden ważny bit: wszystkie systemy plików: ext2 / 3/4 i NTFS bardzo fragmentują pliki, gdy brakuje miejsca na dysku. Jeśli chcesz zapobiec fragmentacji, nie pozwól, aby Twój system plików przekroczył 90%.
Zan Lynx

1
Jeśli używasz ext4, zdziwisz się, ile fragmentacji możesz mieć, gdy uruchomisz e4defrag -v .drzewo drzewa katalogów, szczególnie jeśli zawiera ono, powiedzmy, pliki pobrane za pomocą klienta torrent (choć niektóre używają fallocate/ posix_fallocate).
rbrito

Chociaż pytanie to podlega osobistej opinii, myślę, że bardziej opiera się na faktach.
Julie Pelletier,

Odpowiedzi:


27

Oto artykuł na temat How To Geek na temat tego, jak ext2 / ext3 przydziela pliki na dysku. I mają też artykuł z pytaniem: „ Czy naprawdę musisz defragmentować ?”


Dlaczego FAT ulega fragmentacji:

„Gdy zapisujesz plik w systemie plików FAT, [plik jest zapisywany] jak najbliżej początku dysku. Gdy zapisujesz drugi plik, [plik jest zapisywany] zaraz po pierwszym pliku - i tak na. Kiedy oryginalne pliki powiększają się, zawsze będą się fragmentować. Nie ma w pobliżu miejsca, w którym mogłyby się urosnąć. ”
-Jak maniak

I wikipedia ma więcej informacji na temat fragmentacji FAT .

W jaki sposób EXT2,3,4 alokuje pliki:

„Systemy plików ext2, ext3 i ext4 [...] alokują pliki w bardziej inteligentny sposób. Zamiast umieszczać wiele plików blisko siebie na dysku twardym, systemy plików Linux rozrzucają różne pliki na całym dysku, pozostawiając dużą ilość wolnej przestrzeni między nimi ”.
-Jak maniak

(I więcej informacji na temat defragmentacji na ext3, z wikipedii )

„Nowoczesne systemy plików Linux minimalizują fragmentację, utrzymując wszystkie bloki w pliku blisko siebie, nawet jeśli nie można ich przechowywać w kolejnych sektorach. Niektóre systemy plików, takie jak ext3, skutecznie przydzielają wolny blok najbliższy innym blokuje plik. Dlatego nie trzeba się martwić fragmentacją w systemie Linux. ”
- TLDP


4
Świetna odpowiedź! Ale powinieneś umieścić trochę więcej treści. Chodzi o to, że każda odpowiedź na StackExchange powinna sama w sobie być wystarczająca. Jeśli linki do twoich pytań zostaną zerwane, twoja odpowiedź nie pomoże, więc powinieneś podać wystarczające wyjaśnienie w swoim poście, a następnie podać linki do dalszego czytania.
lgeorget

1
Dziękuję @lgeorget - uściśliłem odpowiedź z kilkoma cytatami kierunkowymi, więc zawsze jest coś do przeczytania na temat „dlaczego”. Doceniam twój wkład / konstruktywny kryt !!
dougBTV

„Po zapisaniu pliku w systemie plików FAT, to oszczędza”. To nie ma sensu Co to jest"? FAT to format systemu plików. Opisuje, gdzie możesz zapisać, ale nie ogranicza cię do jednej lokalizacji. W rzeczywistości decyduje system operacyjny. Ale istnieje wiele różnych systemów operacyjnych, które mogą pisać do FAT i każdy z nich podejmuje własną decyzję.
MSalters

@MSalters - uzgodnione. Zedytuję cytowaną sekcję, aby pominąć tę niejasność.
dougBTV

Zagadka jest dopiero teraz ukryta. Stwierdzenie to jest nadal raczej bezwzględne (tam, gdzie zapisuje się „FAT”), podczas gdy cała specyfikacja FAT mówi nic takiego. W rzeczywistości cytowany przez ciebie link do Wikipedii jest temu sprzeczny: wyraźnie mówi, że Windows wybiera lokalizację drugiego pliku, a nie bezpośrednio po pierwszym. („z góry
wybieramy

23

Fragmentacja jest zawsze problemem, bez względu na system plików. Jednak Ext3 / Ext2 zminimalizowały problem do tego stopnia, że ​​większość administratorów działa tak, jakby nie stanowiło to problemu. Jest to zminimalizowane przez użycie kompetentnego harmonogramu we / wy oraz przez system plików pozostawiający końcowe miejsce po każdym pliku, aby uwzględnić wzrost. Ponadto dodatkowe fragmenty są przechowywane bliżej siebie, więc nawet w przypadku fragmentacji efekty są poważnie wyciszone. Przełączanie ext4 na zakresy miało również pomóc w zmniejszeniu fragmentacji jeszcze dalej.

Fragmentacja nadal istnieje, ext2 ma narzędzie do defragmentacji offline, ext4 otrzymuje narzędzie do defragmentacji online, a btrfs (tylko dlatego, że jest to związane z pytaniem) ma już defragmentację online. Jeśli korzystasz z ext3, jedynym prawdziwym wyborem jest albo konwersja na ext4 (via tune2fs), albo próba sprawdzenia, ile szczęścia masz z narzędziami przestrzeni użytkownika shake.

W zależności od rodzaju operacji we / wy w systemie plików może to być niepokojące nawet na poziomie wyciszenia, dlatego na początek uznano, że narzędzia online są przydatne.

W przypadku pytania dotyczącego FAT32 fragmentacja nie występuje, gdy po prostu operujesz na pliku, dzieje się tak, gdy piszesz do pliku. Aby odpowiedzieć bezpośrednio na twoje pytanie, fragmentacja jest aspektem projektu systemu plików, więc twój system plików FAT32 ma potencjał do fragmentacji za każdym razem, gdy coś do niego napiszesz.


„Jest to zminimalizowane przez użycie kompetentnego programu planującego we / wy”. Z tym wyrażeniem jest coś nie tak.
Faheem Mitha

Dzięki za złapanie tego. Jestem trochę zły, aby zrewidować mój język bez korygowania problemów, które powoduje korekta z ogólną gramatyką zdania akapitu.
Bratchley

To dobra odpowiedź. Dodałbym coś o CoW (kopia przy zapisie). Ma ścisły związek z tym, czy fs ulega fragmentacji.
Martin Sugioarto,

4

Odpowiadając na pytania, jeden po drugim:

Dlaczego nie musisz defragmentować systemu Linux? Ponieważ używa systemu plików ext2 / ext3, czy dlatego, że jest to Linux?

Ponieważ ext2 / 3/4 mają inne podejście do plików i folderów, więc ledwo ulegają fragmentacji. Inni już o tym odpowiedzieli i więcej szczegółów można przeczytać tutaj

Jest to istotne, ponieważ mają system podwójnego rozruchu (W7 / Ubuntu) i wspólną partycję (NTFS), do której dostęp może mieć oba systemy. Jeśli używam tej partycji z Linuksem, czy zostanie ona podzielona na fragmenty?

Tak, może się rozdrobnić. Nie ma znaczenia, czy system Windows, Linux czy cokolwiek innego ma do niego dostęp, tak jak każdy system plików radzi sobie z rozmiarem pliku, jak przechowuje wszystkie te bloki, czy pozostawia puste przestrzenie między każdym plikiem ...

Kolejnym problemem są kontenery Truecrypt. Mam również dostęp do nich w systemach Linux i Windows, a są one FAT32. Czy ulegają fragmentacji przez działający na nich system Linux?

Kontenery Truecrypt są plikiem dla wszystkich praktycznych kwestii. Podczas tworzenia kontenera za pomocą TrueCrypt tworzysz plik o wybranym rozmiarze. W twoim systemie operacyjnym jest jak każdy inny plik. Jeśli zrobisz kopię itp., Być może kopie zostaną zapisane fragmentarycznie.

Pamiętaj jednak, że nigdy nie jest dobrze mieć wiele kopii tego samego kontenera, może to pomóc w zmniejszeniu jego bezpieczeństwa. Zawsze rób nowy pojemnik.

Gdy zapisujesz, usuwasz, kopiujesz, przenosisz itp. Pliki w kontenerze, systemy operacyjne o tym nie wiedzą, podobnie jak otwieranie, edytowanie i zapisywanie dowolnego innego pliku, bez zmiany jego rozmiaru.

A jeśli martwisz się zabezpieczeniami truecrypt dotyczącymi fragmentacji, przeprowadź badania dotyczące korzystania z truecrypt z dyskami SSD: ponieważ dysk SSD próbuje zwiększyć zużycie całej pamięci w nim, możesz mieć taki sam efekt jak kopiowanie pojemnika.


3

Ostatecznie wszystko zależy od sterowników systemu plików w systemie operacyjnym.

Systemy plików ext2 i FAT są metodami rejestrowania, które bloki na dysku należą do którego pliku. Gdy nie wszystkie bloki pliku są ciągłe, plik jest nazywany pofragmentowanym. Ale jak powinno być oczywiste, fragmentacja jest spowodowana strategią alokacji bloków podczas zapisywania pliku, a nie sposobem, w jaki zapisujesz te bloki.

Różnica polega na tym, jak daleko mogą wyglądać sterowniki systemu plików. Jeśli sterownik wie, że jest jeszcze 10 bloków do napisania, może wybrać ciągły wolny obszar i uniknąć przyszłej fragmentacji. Zależy to od architektury sterownika, która jest specyficzna dla systemu operacyjnego. Ale dokładnie takie same wyszukiwanie wolnego miejsca można wykonać na FAT i ext2.

W rzeczywistości ext2 i FAT nie są tak różne, jak mogłoby się wydawać. Napisałem część ext2 bootloadera na istniejącym kodzie FAT i wymagało to mniej niż 100 dodatkowych wierszy kodu.

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.