Кожен користувач 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. Вони цього не потребують.