Ответ заключается в том, что в случае Линукса, операционная система работает на пользователя, а не пользователь обслуживает операционную систему. Файловая система Линукса не нуждается в дефрагментации, борясь с этим неприятным явлением самостоятельно. Авторы заметки «HTG Explains: Why Linux Doesn’t Need Defragmenting» объясняют почему так произошло. Если кратко, то суть статьи можно свести к следующему.
В FAT каждый новый файл размещается, по возможности, как можно ближе к началу диска и следует вплотную за другими файлами. Когда размер одного из файлов изменяется в сторону увеличения, следующий за этим файлом препятствует изменению размера и операционной системе приходится разбивать редактируемый файл на фрагменты.
В NTFS разработчики решили поступить чуть умнее, оставляя вокруг каждого файла “буферную зону” из свободного пространства, которое затем может использоваться, если объем файла увеличится. Иногда такой метод работает, иногда нет, но в итоге пользователю все равно приходится проводить дефрагментацию, чтобы вернуть прежнюю производительность.
Разработчики Линукса решили проблему фрагментации, причем сделали это простым и изящным способом. В файловых системах Ext2, Ext3 и Ext4 новые файлы равномерно “раскидываются” по всему диску. При увеличении объема файла используется все доступное свободное пространство между файлами и фрагментации, в большинстве случаев, не происходит. А если она все же и происходит, то файловая система в фоновом режиме старается переносить дефрагментированные файлы в другое место, где фрагменты могут быть объединены. Таким образом, отдельные и регулярные процедуры дефрагментации не требуется.
Кстати, с таким фоновым переносом фрагментов файлов связана одна интересная особенность файловых систем Ext. Если диск заполнен более чем на 95% (80% по другим данным), то фрагментация все же возможна. Чтобы предупредить снижение скорости чтения и записи файлов в этом случае следует задуматься о покупке нового, более просторного диска. Если этот вариант не для вас, то существует одна хитрость, позволяющая избавиться от фрагментации даже в случае переполненного диска. Перепишите все файлы фрагментированного раздела в другой раздел, а потом скопируйте обратно. Файловая система сама более разумно разместит вновь записываемые файлы, что позволит избавиться от фрагментации.