Kiekvienas "Windows" naudotojas žino, kad yra disko defragmentacijos funkcija. Kad kietasis diskas veiktų greitai, būtina defragmentuoti diską, kuriame įdiegta operacinė sistema. Linux sistemoje esanti Ext4 failų sistema nėra linkusi į fragmentaciją. Tačiau praktikoje žinoma, kad ilgai dirbant su sistema susikaupia šiek tiek fragmentacijos. Toliau išsamiai papasakosime, kaip tinkamai defragmentuoti "Linux" diską. Norėdami tai padaryti, nagrinėsime Ext4 failų sistemos pavyzdį.
Kas yra fragmentacija? Pažvelkime į teoriją: kietąjį diską sudaro daugybė mažų sektorių, kurių kiekviename saugoma nedidelė duomenų dalis. Dideli failai padalijami į kelis mažesnius fragmentus.
Tačiau Ext4 nefragmentuoja kaip kitos failų sistemos, nes skiria vietą po įrašytu failu. Ir net jei įvyksta fragmentacija, ji stengiasi perkelti failą į laisvą vietą. Fragmentacija įvyksta, kai failų sistema yra pilna, tačiau taip būna retai.
SSD diskų nereikia defragmentuoti. Juose nėra judančių dalių.
Kai naudotojas įrašo failą FAT arba NTFS sistemoje, šiai operacijai paskiriamas tam tikras išteklių kiekis, tada įrašomi kiti failai. Jei reikia atnaujinti failą ir papildyti jį informacija, naudojami kiti sektoriai kitoje disko dalyje.
Kai tokių failų yra daug, failas gali būti paskirstytas po visą diską, o tai reiškia, kad atliekant tokią operaciją kaip skaitymas teks perkelti skaitymo galvutę, o tai sulėtins našumą. Būtent tai ir yra fragmentacija.
Naudokite fsck
įrankį, kad įvertintumėte, kiek diskas yra fragmentuotas. Įveskite parinktį -f
. Naudokite parinktį -n, kad išvengtumėte didelių failų sistemos pakeitimų:
$ sudo fsck -fn /dev/sdb1
/dev/sdb1
yra tikrinimo skirsnis. Neatlikite patikrinimo prijungtoje sistemoje, susidursite su klaidingomis klaidomis, jei failų sistemai nebus atliekami jokie veiksmai, žala nebus padaryta. Atlikti defragmentaciją padės e4defrag
programa, ji yra aplanke e2fsprogs
.
Jei šio naudingųjų programų rinkinio dar neįdiegėte, įdiekite jį komanda:
$ sudo apt install e2fsprogs
Toliau galima atlikti norimo skirsnio defragmentavimą. Tas pats /dev/sdb1
. Prieš defragmentavimą prijungkime skirsnį:
$ sudo mount /dev/sdb1 /mnt
Tada Ext4 defragmentaciją:
$ sudo e4defrag /dev/sdb1
Toliau galite dar kartą patikrinti fragmentaciją. Prieš tai atjunkite skirsnį. Fragmentacija 0 %:
$ sudo fsck -fn /dev/sdb1
Tai viskas. Nešvaistykite laiko tik defragmentuodami SSD diskus. Jiems to nereikia.