Пользователи Windows знают, что для того, чтобы операционная система работала быстро надо время от времени дефрагментировать жесткий диск, на котором она установлена. Файловая система Ext4 в Linux не подвержена фрагментации. Однако при долгом использовании при определённых условиях незначительная фрагментация может всё же накапливаться.
В этой статье мы рассмотрим как выполняется дефрагментация диска в Linux на примере файловой системы Ext4. Я выбрал именно эту файловую систему, потому, что она самая популярная на данный момент.
Содержание статьи:
Что такое фрагментация?
Первым делом надо понять что же такое фрагментация. Жесткий диск состоит из множества маленьких секторов, в каждом из которых хранится небольшая частичка данных. Если файл большой он разделяется на несколько секторов. Когда вы записываете файл в файловых системах FAT или NTFS, под него выделяется определённое количество секторов, а после него записываются уже следующие файлы, поэтому если вы захотите обновить файл и добавить в него информацию, то для этого уже будут использоваться секторы в другой части диска. Если таких операций будет много, то файл может оказаться раскиданным по всему диску и при чтении диску придется очень часто перемещать читающую головку, что замедлит производительность. Это и есть фрагментация.
Но Ext4 большой фрагментации не подвержена, потому что файловая система выделяет много места после записанного файла и использует его. А даже если возникает фрагментация, то она пытается переместить файл в свободное место. Здесь фрагментация может возникнуть только если файловая система переполнена и то это возникает довольно редко.
Надо ещё отметить, что для SSD дисков дефрагментация не нужна. Там нет движущихся частей, а поэтому фрагментация не замедляет их работу, зато дефрагментация уменьшает срок службы.
Дефрагментация диска в Linux
Чтобы посмотреть какая сейчас фрагментация диска можно использовать утилиту fsck. Ей надо передать параметр -f. Чтобы в файловую систему не вносились никакие изменения используйте опцию -n:
sudo fsck -fn /dev/sdb1
Здесь /dev/sdb1 - это раздел, который надо проверить. Фрагментация указывается в скобках и измеряется в процентах, обычно она очень маленькая и не достигает даже одного процента.Не рекомендуется выполнять проверку на примонтированной системе, иначе вы получите кучу ложных ошибок, однако если с файловой системой не будут выполнятся никакие действия, то вы ничего не повредите. Для дефрагментации нам понадобится утилита e4defrag, находящаяся в папке e2fsprogs. Если у вас этот набор утилит ещё не установлен, установите его командой:
sudo apt install e2fsprogs
Теперь можете дефрагментировать нужный раздел. Например, тот же /dev/sdb1. Но перед дефрагментацией раздел надо примонтировать:
sudo mount /dev/sdb1 /mnt
Затем дефрагментация Ext4:
sudo e4defrag /dev/sdb1
После этого можно снова проверить фрагментацию. Если есть возможность, лучше отмонтировать перед этим раздел. Как видите, теперь фрагментация 0%:
sudo fsck -fn /dev/sdb1
Выводы
В этой статье мы рассмотрели как выполняется дефрагментация диска Linux с файловой системой Ext4. Всё очень просто. Только не надо дефрагментировать SSD диски, это только уменьшит срок их службы. А что вы думаете про дефрагментацию? Напишите в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
С самого начало было НЕОБХОДИМО написать, что для SSD это не то что не подходит, а даже губительно. Но у автора ни слова об этом.
Спасибо. У меня один диск 0.4%, второй 28.1%.
А может стоит прочитать все от начала до конца, прежде чем что-то предпринимать. В выводах все написано про SSD.
было бы неплохо указывать команды на поиск этих самых файловых систем вам очевидно а новечкам приходится лишний раз в поисковик лезть. а типа вы должны знать. ну так те кто знают сюда не заходят. ато вот чел сидит читает и не поймет что еще за sdb1 и где его собственно брать.
Команда на ПОИСК файловых систем? Хммм... mount без параметров покажет ВСЕ файловые системы, точки и параметры монтирования. А вообще, такой вопрос - Windows Вы от рождения знали? Или все-таки изучали? Так вот и тут. Любая ОС требует изучения. А Windows/Linux совершенно разные. Причем Ubuntu, пожалуй, для пользователя (именно пользователя) самая простая и удобная. Хоть сам ей уже не пользуюсь, но считаю ее очень хорошей. Так сказать, *NIX с человеческим лицом.
Любые вопросы готов обсудить, знаниями поделюсь 🙂