Hvordan reparere og defragmentere Linux-systempartisjoner og -kataloger


Folk som bruker Linux tror ofte at det ikke krever defragmentering. Dette er en vanlig misforståelse blant Linux-brukere. Faktisk støtter Linux-operativsystemet defragmentering. Poenget med defragmenteringen er å forbedre I/O-operasjoner som å la lokale videoer lastes raskere eller trekke ut arkiver betydelig raskere.

Linux ext2, ext3 og ext4 filsystemene trenger ikke så mye oppmerksomhet, men med tiden, etter å ha utført mange mange mange les/skrivinger, kan filsystemet kreve optimalisering. Ellers kan harddisken bli tregere og påvirke hele systemet.

I denne opplæringen skal jeg vise deg noen forskjellige teknikker for å utføre defragmentering på filer. Før vi begynner, bør vi nevne hva de vanlige filsystemene som ext2,3,4 gjør for å forhindre fragmentering. Disse filsystemene inkluderer teknikk for å forhindre effekten. For eksempel reserverer filsystemer gratis blokkgrupper på harddisken for å lagre voksende filer fullstendig.

Dessverre løses ikke alltid problemet med en slik mekanisme. Mens andre operativsystemer kan kreve dyr ekstra programvare for å løse slike problemer, har Linux noen enkle å installere verktøy som kan hjelpe deg med å løse slike problemer.

Hvordan sjekke et filsystem krever defragmentering?

Før vi starter vil jeg påpeke at operasjonene nedenfor bare skal kjøres på HDDer og ikke på SSD. Defragmentering av SSD-stasjonen vil bare øke lese-/skriveantallet og dermed forkorte levetiden. I stedet, hvis du bruker SSD, bør du bruke TRIM-funksjonen, som ikke dekkes i denne opplæringen.

la oss teste om systemet faktisk krever defragmentering. Vi kan enkelt sjekke dette med verktøy som e2fsck. Før du bruker dette verktøyet på en partisjon på systemet ditt, anbefales det å avmontere den partisjonen med. Dette er ikke helt nødvendig, men det er den sikre veien å gå:

sudo umount <device file>

I mitt tilfelle har jeg /dev/sda1 montert på /tmp:

Husk at i ditt tilfelle kan partisjonstabellen være annerledes, så sørg for å avmontere riktig partisjon. For å avmontere den partisjonen kan du bruke:

sudo umount /dev/sda1

La oss nå sjekke om denne partisjonen krever defragmentering, med e2fsck. Du må kjøre følgende kommando:

sudo e2fsck -fn /dev/sda1

Kommandoen ovenfor vil utføre en filsystemkontroll. Alternativet -f tvinger kontrollen, selv om systemet virker rent. Alternativet -n brukes til å åpne filsystemet i skrivebeskyttet og anta svar på "nei" på alle spørsmål som kan dukke opp.

Dette alternativet tillater i utgangspunktet å bruke e2fsck ikke-interaktivt. Hvis alt er OK, bør du se et resultat som ligner på det som vises på skjermbildet nedenfor:

Her er et annet eksempel som viser feil på et system:

Hvordan reparere Linux-filsystem ved hjelp av e2fsck

Hvis feil vises, kan du forsøke å reparere filsystemet med e2fsck med "-p" alternativet. Merk at for å kjøre kommandoen nedenfor, må partisjonen avmonteres:

sudo e2fsck -p <device file>

«-p»-alternativene forsøker automatisk reparasjon av filsystemet for problemer som trygt kan fikses uten menneskelig innblanding. Hvis det oppdages et problem som kan kreve at systemadministratoren iverksetter ytterligere korrigerende tiltak, vil e2fsck skrive ut en beskrivelse av problemet og avsluttes med kode 4, som betyr «Filsystemfeil som ikke er rettet». Avhengig av problemet som er funnet, kan det være nødvendig med ulike handlinger.

Hvis problemet dukker opp på en partisjon som ikke kan demonteres, kan du bruke et annet verktøy kalt e4defrag. Den kommer forhåndsinstallert på mange Linux-distros, men hvis du ikke har den på din, kan du installere den med:

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

Hvordan defragmentere Linux-partisjoner

Nå er det på tide å defragmentere Linux-partisjoner ved å bruke følgende kommando.

sudo e4defrag <location>
or
sudo e4defrag <device>

Hvordan defragmentere Linux-katalogen

Hvis du for eksempel ønsker å defragmentere en enkelt katalog eller enhet, kan du bruke:


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

Hvordan defragmentere alle Linux-partisjoner

Hvis du foretrekker å defragmentere hele systemet, er den sikre måten å gjøre dette på:

sudo e4defrag /

Husk at denne prosessen kan ta litt tid å fullføre.

Konklusjon

Defragmentering er en operasjon som du sjelden trenger å kjøre i Linux. Det er ment for avanserte brukere som vet nøyaktig hva de gjør og anbefales ikke for Linux-nybegynnere. Poenget med hele handlingen er å ha filsystemet optimalisert slik at nye lese-/skriveoperasjoner utføres mer effektivt.