Kako popraviti i defragmentirati Linux sistemske particije i direktorije


Ljudi koji koriste Linux često misle da on ne zahtijeva defragmentaciju. Ovo je uobičajeni nesporazum među korisnicima Linuxa. Zapravo, Linux operativni sustav podržava defragmentaciju. Poanta defragmentacije je poboljšati I/O operacije, poput omogućavanja bržeg učitavanja lokalnih videozapisa ili znatno bržeg izdvajanja arhiva.

Datotečni sustavi Linux ext2, ext3 i ext4 ne trebaju toliko pažnje, ali s vremenom, nakon izvršavanja mnogih, mnogo mnogo čitanja/pisanja datotečnog sustava, može biti potrebna optimizacija. Inače bi tvrdi disk mogao usporiti i utjecati na cijeli sustav.

U ovom uputstvu pokazat ću vam nekoliko različitih tehnika za izvršavanje defragmentacije datoteka. Prije nego što započnemo, trebali bismo spomenuti što uobičajeni datotečni sustavi poput ext2,3,4 rade kako bi spriječili fragmentaciju. Ti datotečni sustavi uključuju tehniku za sprečavanje učinka. Na primjer, datotečni sustavi rezerviraju slobodne blokovske grupe na tvrdom disku za potpuno spremanje rastućih datoteka.

Nažalost, problem se uvijek ne rješava takvim mehanizmom. Iako drugi operativni sustavi mogu zahtijevati skupi dodatni softver za rješavanje takvih problema, Linux ima nekoliko jednostavnih alata koji vam mogu pomoći u rješavanju takvih problema.

Kako provjeriti treba li datotečni sustav defragmentaciju?

Prije nego što započnemo, želio bih naglasiti da se dolje navedene radnje trebaju izvoditi samo na HDD-ima, a ne na SSD-u. Defragmentacijom SSD pogona samo ćete povećati broj čitanja/pisanja, a time i skratiti njegov životni vijek. Umjesto toga, ako koristite SSD, trebali biste koristiti funkciju TRIM, koja nije obrađena u ovom vodiču.

testirajmo treba li sustav zapravo defragmentaciju. To lako možemo provjeriti pomoću alata kao što je e2fsck. Prije nego što upotrijebite ovaj alat na particiji na vašem sustavu, preporučuje se demontiranje te particije pomoću. To nije u potpunosti potrebno, ali to je siguran put:

$ sudo umount <device file>

U mom slučaju imam/dev/sda1 montiran na/tmp:

Imajte na umu da bi se tablica particija u vašem slučaju mogla razlikovati, pa pobrinite se za demontažu prave particije. Za demontažu te particije možete koristiti:

$ sudo umount /dev/sda1

Sada provjerimo treba li ova particija defragmentaciju s e2fsck. Morat ćete pokrenuti sljedeću naredbu:

$ sudo e2fsck -fn /dev/sda1

Gornja naredba će izvršiti provjeru datotečnog sustava. Opcija -f forsira provjeru, čak i ako se čini da je sustav čist. Opcija -n koristi se za otvaranje datotečnog sustava samo za čitanje i pretpostavku odgovora "ne" na sva pitanja koja se mogu pojaviti.

Ova opcija u osnovi omogućuje ne-interaktivnu upotrebu e2fsck-a. Ako je sve u redu, trebali biste vidjeti rezultat sličan onome prikazanom na snimci zaslona u nastavku:

Evo još jednog primjera koji pokazuje pogreške u sustavu:

Kako popraviti Linux datotečni sustav pomoću e2fsck

Ako se pojave pogreške, možete pokušati popraviti datotečni sustav pomoću e2fsck s opcijom "-p". Imajte na umu da će za izvođenje naredbe u nastavku particiju trebati demontirati:

$ sudo e2fsck -p <device file>

Opcija "-p" pokušava automatski popraviti datotečni sustav za probleme koji se mogu sigurno riješiti bez ljudske intervencije. Ako se otkrije problem koji može zahtijevati od administratora sustava da poduzme dodatne korektivne mjere, e2fsck će ispisati opis problema i izaći s kodom 4, što znači " Pogreške datotečnog sustava ostale su neispravljene". Ovisno o pronađenoj poteškoći, možda će biti potrebne različite radnje.

Ako se problem pojavi na particiji koju nije moguće demontirati, možete upotrijebiti drugi alat nazvan e4defrag. Dolazi unaprijed instaliran na mnogim Linux distribucijama, ali ako ga nemate na svom, možete ga instalirati sa:

$ sudo apt-get install e2fsprogs         [On Debian and Derivatives]
# yum install e2fsprogs                  [On CentOS based systems]
# dnf install e2fsprogs                  [On Fedora 22+ versions] 

Kako defragmentirati Linux particije

Sada je vrijeme da defragmentiramo Linux particije pomoću sljedeće naredbe.

$ sudo e4defrag <location>
or
$ sudo e4defrag <device>

Kako defragmentirati Linux direktorij

Na primjer, ako želite defragmentirati jedan direktorij ili uređaj, možete koristiti:

$ sudo e4defrag /home/user/directory/
# sudo e4defrag /dev/sda5

Kako defragmentirati sve Linux particije

Ako radije defragmentirate cijeli svoj sustav, siguran način za to je:

$ sudo e4defrag /

Imajte na umu da ovaj postupak može potrajati neko vrijeme.

Zaključak

Defragmentacija je operacija koju ćete rijetko trebati pokrenuti u Linuxu. Namijenjen je naprednim korisnicima koji znaju što točno rade i ne preporučuje se za početnike Linuxa. Poanta cijele akcije je optimizirati vaš datotečni sustav tako da se nove operacije čitanja/pisanja izvode učinkovitije.