Каждый юзер Windows знаком с тем, что есть дефрагментация диска. Она нужна для того, чтобы жесткий диск быстро функционировал, при этом дефрагментировать нужно тот диск. на котором установлена OS. Файловая система Ext4 в Linux не подвержена фрагментации. Но на практике известно, что в случае продолжительной работы за системой некоторая фрагментация накапливается. Дальше подробно расскажем о том, как правильно выполняется дефрагментация диска в Linux. Для этого мы рассмотрим пример файловой системы Ext4.
Что такое фрагментация? Рассмотрим теорию: жесткий диск состоит из большого количества небольших секторов, в каждом хранится небольшая частичка данных. Большие файлы разделены на несколько меньших фрагментов.
Но в Ext4 не фрагментируется так, как другие файловые системы, потому что она выделяет использует место после записанного файла. А даже если возникает фрагментация, то она пытается переместить файл в свободное место. Фрагментация возникает, когда файловая система переполнена, но так происходит редко.
Для SSD дисков дефрагментация не нужна. Там нет движущихся частей.
Когда пользователь записывает файл в системе FAT или NTFS, под эту операцию выделяют определенное количество ресурсов, дальше записывает следующие файлы. Если нужно обновить файл и добавить в него информацию, будут использованы другие секторы в другой части диска.
Когда таких файлов большое число, файл может оказаться распределенным по всему диску, это значит, что в случае выполнения такой операции как чтение ему придется перемещать читающую головку, а это замедлит производительность. Это и есть фрагментация.
Воспользуйтесь утилитой 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
Вот и все. Не тратьте время только на дефрагментацию дисков SSD. Они в этом не нуждаются.