ext2/ext3/ext4 семейству файловых систем не нужна дефрагментация.
Какая базовая справка дизайна эта файловая система в том, чтобы не быть фрагментированным?
Один путь, которым ext4 файловая система контролирует фрагментацию, с процессом задержанное выделение (режим выделения ext4 по умолчанию).
Задержанное выделение работает путем задержки отображения недавно записанных блоков данных файла к дисковым блокам в файловой системе до времени обратной записи.
Это работает путем выделения большинства блоков для файла одновременно, когда общее количество блоков (или по крайней мере приблизительная оценка) в каждом файле известно. Это позволяет средству выделения блока (эти mballoc
упомянутый в ответе MMK) делать лучшее задание нахождения, что соответственно измеренная область свободного пространства помещает файл.
В ext3 файловой системе существует средство выделения блока для диска для каждого блока, и таким образом, довольно возможно, что фрагментация может произойти.
Однако в ext4 файловой системе существует средство выделения мультиблока, которое может задержать запись блоков к диску, так, чтобы это могло свойство выделять несколько блоков за один раз в единственном блоке диска для обеспечения непрерывной записи - и так, менее вероятно, что фрагментация может произойти (это все еще возможно, просто менее вероятно)
По крайней мере, для Ext2 (и Ext3 я думаю, хотя я менее уверен), нет ничего в дисковом формате/структуре, который предотвратил бы дефрагментацию.
отсутствие потребности в дефрагментации идет, находятся на уровне реализации, который будет варьироваться от ОС до ОС. Таким образом, в зависимости от реализации файл в Ext2 может или не может быть фрагментирован.
, Если фрагментации избегают, который, вероятно, произойдет из-за задержанного выделения физических блоков. Таким образом, на некотором уровне реализации файловая система будет кэшировать данные (и получать доступ к нему через номер логического блока) до тех пор, пока это пишется/соглашается диск. Когда данные наконец записаны в диск, физические блоки должны быть выделены. Алгоритм назначения может (или не может) выделять много непрерывных доступных физических блоков для данных.
Hope это помогает.