Способи оплати Abuse

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

23.10.2022, 02:33

Кожен користувач Windows знайомий з тим, що є дефрагментація диска. Вона потрібна для того, щоб жорсткий диск швидко функціонував, водночас дефрагментувати потрібно той диск, на якому встановлено OS. Файлова система Ext4 в Linux не схильна до фрагментації. Але на практиці відомо, що в разі тривалої роботи за системою деяка фрагментація накопичується. Далі докладно розповімо про те, як правильно виконується дефрагментація диска в Linux. Для цього ми розглянемо приклад файлової системи Ext4.

Дефрагментація - що це? Простими словами про складне

Що таке фрагментація? Розглянемо теорію: жорсткий диск складається з великої кількості невеликих секторів, у кожному зберігається невелика частинка даних. Великі файли розділені на кілька менших фрагментів.

Але Ext4 не фрагментується так, як інші файлові системи, тому що вона виділяє використовує місце після записаного файлу. А навіть якщо виникає фрагментація, то вона намагається перемістити файл у вільне місце. Фрагментація виникає, коли файлова система переповнена, але так відбувається рідко.

Для SSD дисків дефрагментація не потрібна. Там немає рухомих частин.

Коли користувач записує файл у системі FAT або NTFS, під цю операцію виділяють певну кількість ресурсів, далі записує наступні файли. Якщо потрібно оновити файл і додати в нього інформацію, будуть використані інші сектори в іншій частині диска.

Коли таких файлів велике число, файл може виявитися розподіленим по всьому диску, це означає, що в разі виконання такої операції, як читання, йому доведеться переміщати голівку, що читає, а це сповільнить продуктивність. Це і є фрагментація.

Як відбувається дефрагментація в Linux

Скористайтеся утилітою fsck для оцінки ступеня фрагментації диска. Передайте параметр -f. Використовуйте опцію -n, щоб не допустити серйозних змін у файловій системі:

$ sudo fsck -fn /dev/sdb1

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

/dev/sdb1 - розділ перевірки. Не виконуйте перевірку на примонтованій системі, ви зіткнетеся з помилковими помилками, якщо з файловою системою не виконуватимуться жодні дії, то й пошкоджень не буде. Утиліта e4defrag допоможе виконати дефрагментацію, вона знаходиться в папці e2fsprogs.

Якщо у вас цей набір утиліт ще не встановлений, встановіть його командою:

$ sudo apt install e2fsprogs

Далі доступна дефрагментація потрібного розділу. Той самий /dev/sdb1. Примонтуємо розділ перед дефрагментацією:

$ sudo mount /dev/sdb1 /mnt

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

Потім дефрагментація Ext4:

$ sudo e4defrag /dev/sdb1

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

Далі можна знову перевірити фрагментацію. Відмонтуйте перед цим розділ. Фрагментація 0%:

$ sudo fsck -fn /dev/sdb1

Ось і все. Не витрачайте час тільки на дефрагментацію дисків SSD. Вони цього не потребують.