Найти тему
Lucky Day

Дефрагментация диска в Linux

В отличии от Windows файловая система Linux устроенна таким образом, что дефрагментация диска ей не требуется!

Файловая система использует механизм записи extent, который призван уменьшить фрагментацию файлов и увеличить производительность системы. Другими словами новый файл пишется в конец области диска по соседству с предыдущим. Так же файловая система хранит не только информацию о местоположении свободных блоков, но и о количестве свободных блоков идущими друг за другом. Данная особенность позволяет найти ей место под новый файл целиком, дабы избежать фрагментации. Если сравнить этот момент с Windows, то та пишет файлы просто в свободные блоки, что и приводит к фрагментации.

К примеру было на диске 3 игры или программы:

Программа 1(размером 10гб), программа 2(размером 5гб) и программа 3(размером 40гб). Вы захотели удалить за ненадобностью программу 2, тем самым у вас в данной области освободилось 5гб свободного пространства. Здесь же вы решили установить программу 4(размер 30гб), которые по умолчанию Wndows запишет 5гб в свободные блоки между между программой 1 и программой 3 и остальные 25 после программы 3. Т.е по умолчанию программа 4 на выходе уже получается фрагментированной. И это не так страшно например если все это находится в быстрой области диска, да и по сути рядом. Страшнее когда со временем у вас таких установил - удалил собирается вагон и маленькая тележка и одна и та же программа в итоге будет разбросана по всему диску. А вы просто пользовались компьютером в обычном режиме и ничего криминального не делали) Как итог низкая скорость программ и игр так как программа 144 запишется какой-то частью в начале, середине и конце диска, просто потому, что там было место от удаленных когда-то программ 20,44,68,99,131 и т.д

Linux же всегда будет искать место, чтоб программу 4 записать на диск без фрагментации, как минимум запишет ее сразу за программой 3, что не плохо и вполне себе разумно! Дополнительно система резервирует свободное место для программы, берет определенное количество блоков и ставит флаг, мол заполнено нулевыми байтами, что в будущем при обращении программы для которой эти блоки зарезервированы флаг будет снят, а блоки использованы этой программой. Таким образом наша программа никогда не прервется, потому, что файловая система о ней позаботилась.

И как бы это не было умно, появление фрагментированных фалов все же не исключено и имеет место быть. Может вы торрентами например будете сутками баловаться или просто туда сюда перемещать большие файлы. В этом случае в ручную дефрагментировать диск все же можно утилитой e4defrag. На домашнем пк это понадобится скорее никогда. Так как в том же торренте можно в настройках включить ,чтоб он зараннее выделял место под данные, а большие файлы вы вряд ли туда сюда ворочаете целыми днями. Вот и получается, что по сути можно спать спокойно и что такое фрагментация не испытать на себе)

Фрагментация страшна для hdd дисков и только. Для ссд по барабану как там лежат файлы, т.к он не имеет механических элементов и обращается напрямую к ячейкам.

Надеюсь кому-то статья была интересна либо полезна. Спасибо за внимание, всем добра!