Kako popraviti in defragmentirati sistemske particije in imenike Linuxa


Ljudje, ki uporabljajo Linux, pogosto mislijo, da ne zahteva defragmentacije. To je pogost nesporazum med uporabniki Linuxa. Pravzaprav operacijski sistem Linux podpira defragmentacijo. Bistvo defragmentacije je izboljšati V/I operacije, kot je omogočanje hitrejšega nalaganja lokalnih videoposnetkov ali bistveno hitrejše pridobivanje arhivov.

Datotečni sistemi Linux ext2, ext3 in ext4 ne potrebujejo toliko pozornosti, sčasoma pa bo po izvedbi mnogih, mnogih, mnogih branja/pisanja, datotečni sistem morda treba optimizirati. V nasprotnem primeru lahko trdi disk postane počasnejši in vpliva na celoten sistem.

V tej vadnici vam bom predstavil nekaj različnih tehnik za izvajanje defragmentacije datotek. Preden začnemo, moramo omeniti, kaj običajni datotečni sistemi, kot je ext2,3,4, naredijo, da preprečijo razdrobljenost. Ti datotečni sistemi vključujejo tehniko za preprečevanje učinka. Na primer datotečni sistemi si na trdem disku rezervirajo proste blokovne skupine za popolno shranjevanje rastočih datotek.

Na žalost problem ni vedno rešen s takšnim mehanizmom. Medtem ko lahko drugi operacijski sistemi za reševanje takšnih težav zahtevajo drago dodatno programsko opremo, ima Linux nekaj enostavnih orodij, ki vam lahko pomagajo pri reševanju takšnih težav.

Kako preveriti, ali datotečni sistem zahteva defragmentacijo?

Preden začnemo, bi rad poudaril, da je treba spodnje postopke izvajati samo na trdih diskih in ne na SSD. Z defragmentiranjem pogona SSD boste samo povečali število branja/pisanja in s tem skrajšali njegovo življenjsko dobo. Namesto tega, če uporabljate SSD, uporabite funkcijo TRIM, ki v tej vadnici ni zajeta.

preizkusimo, ali sistem dejansko zahteva defragmentacijo. To lahko enostavno preverimo z orodjem, kot je e2fsck. Preden uporabite to orodje na particiji v sistemu, je priporočljivo, da to particijo demontirate z. To ni povsem potrebno, vendar je varna pot:

$ sudo umount <device file>

V mojem primeru imam/dev/sda1 nameščen na/tmp:

Upoštevajte, da je tabela particij v vašem primeru morda drugačna, zato odstranite pravo particijo. Če želite odstraniti to particijo, lahko uporabite:

$ sudo umount /dev/sda1

Zdaj pa preverimo, ali ta particija zahteva defragmentacijo, z e2fsck. Zagnati boste morali naslednji ukaz:

$ sudo e2fsck -fn /dev/sda1

Zgornji ukaz bo izvedel preverjanje datotečnega sistema. Možnost -f prisili preverjanje, tudi če se zdi sistem čist. Možnost -n se uporablja za odpiranje datotečnega sistema samo za branje in prevzem odgovora \"ne \" na vsa vprašanja, ki se lahko pojavijo.

Te možnosti v bistvu omogočajo ne-interaktivno uporabo e2fsck. Če je vse v redu, bi morali videti rezultat, podoben tistemu, prikazanemu na spodnjem posnetku zaslona:

Tu je še en primer, ki prikazuje napake v sistemu:

Kako popraviti datotečni sistem Linux z uporabo e2fsck

Če se pojavijo napake, lahko poskusite popraviti datotečni sistem z e2fsck z možnostjo “-p”. Če želite zagnati spodnji ukaz, morate particijo odstraniti:

$ sudo e2fsck -p <device file>

Možnosti “-p” poskušajo samodejno popraviti datotečni sistem za težave, ki jih je mogoče varno odpraviti brez človeškega posredovanja. Če se odkrije težava, ki bo morda od sistemskega skrbnika zahtevala dodatne korektivne ukrepe, bo e2fsck natisnil opis težave in izstopil s kodo 4, kar pomeni » Napake datotečnega sistema so ostale nepopravljene«. Glede na ugotovljeno težavo bodo morda potrebna drugačna dejanja.

Če se težava pojavi na particiji, ki je ni mogoče demontirati, lahko uporabite drugo orodje, imenovano e4defrag. Na voljo je vnaprej nameščen na številnih distribucijah Linuxa, če pa ga nimate na svojem, ga lahko namestite z:

$ 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 particije Linuxa

Zdaj je čas, da defragmentiramo particije Linuxa z naslednjim ukazom.

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

Kako defragmentirati imenik Linuxa

Če želite na primer defragmentirati en imenik ali napravo, lahko uporabite:

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

Kako defragmentirati vse particije Linuxa

Če želite raje defragmentirati celoten sistem, je to varno:

$ sudo e4defrag /

Upoštevajte, da lahko postopek traja nekaj časa.

Zaključek

Defragmentacija je operacija, ki jo boste redko morali zagnati v Linuxu. Namenjen je izkušenim uporabnikom, ki vedo, kaj točno počnejo, in ni priporočljiv za začetnike Linuxa. Bistvo celotnega dejanja je optimizacija vašega datotečnega sistema, tako da se nove operacije branja/pisanja izvajajo učinkoviteje.