Det er en felles myte at Linux-disker ikke trenger defragmentering i det hele tatt. I de fleste tilfeller er dette sant, hovedsakelig på grunn av de gode journaling-filsystemene Linux bruker (ext2, 3, 4, btrfs, etc.) for å håndtere filsystemet. I enkelte tilfeller kan imidlertid fragmentering fortsatt forekomme. Hvis det skjer med deg, er løsningen heldigvis veldig enkel.

Hva er fragmentering?

Fragmentering oppstår når et filsystem oppdaterer filer i små biter, men disse bitene danner ikke en sammenhengende helhet og er spredt rundt disken i stedet. Dette gjelder spesielt for FAT og FAT32 filsystemer. Det ble noe redusert i NTFS og skjer nesten aldri i Linux (extX). Her er hvorfor.

I filsystemer som FAT og FAT32 skrives filer rett ved siden av hverandre på disken. Det er ikke ledig plass til filvekst eller oppdateringer:

NTFS forlater noe mer plass mellom filene, så det er plass til å vokse. Ettersom mellomromet mellom biter er begrenset, vil fragmenteringen fortsatt forekomme over tid.

Linuxs journaling filsystemer tar en annen tilnærming. I stedet for å plassere filer ved siden av hverandre, er hver fil spredt over hele disken, og gir generøse mengder ledig plass mellom hver fil. Det er nok plass til filoppdateringer / vekst og fragmentering forekommer sjelden.

I tillegg, hvis fragmentering skjer, ville de fleste Linux-filsystemer forsøke å blande filer og biter rundt for å gjøre dem sammen igjen.

Diskfragmentering på Linux

Diskfragmentering forekommer sjelden i Linux, med mindre du har en liten harddisk, eller det går tom for plass. Noen mulige fragmenteringsfall er:

  • hvis du redigerer store videofiler eller røde bildefiler, og diskplass er begrenset
  • hvis du bruker eldre maskinvare som en gammel bærbar datamaskin, og du har en liten harddisk
  • hvis harddiskene dine begynner å fylle opp (over 85% brukt)
  • hvis du har mange små partisjoner cluttering din hjemme mappe

Den beste løsningen er å kjøpe en større harddisk. Hvis det ikke er mulig, er det her hvor defragmentering blir nyttig.

Hvordan sjekke for fragmentering

fsck kommandoen vil gjøre dette for deg - det vil si hvis du har mulighet til å kjøre den fra en live-CD, med alle berørte partisjoner avmontert.

Dette er svært viktig: RUNNING FSCK PÅ EN MONTERT PARTISJON KAN OG VIL VIL SKADES DERES DATA OG DIN DISK.

Du har blitt advart. Før du fortsetter, gjør du en fullstendig sikkerhetskopiering av systemet.

Ansvarsfraskrivelse : Forfatteren av denne artikkelen og Make Tech Easier tar ikke noe ansvar for eventuelle skader på dine filer, data, system eller annen skade som følge av dine handlinger etter å ha fulgt dette råd. Du kan fortsette på egen risiko. Hvis du fortsetter, aksepterer du og bekrefter dette.

Du bør bare starte opp i en levende økt (som en installasjonsdiskett, systemreddings-CD, etc.) og kjøre fsck på dine UNMOUNTED partisjoner. For å se etter eventuelle problemer, kjør følgende kommando med root-tillatelse:

 fsck -fn [/ path / to / your / partisjon] 

Du kan sjekke hva [/path/to/your/partition] er ved å kjøre

 sudo fdisk -l 

Det er en måte å kjøre fsck (relativt) trygt på en montert partisjon - det vil si ved å bruke -n bryteren. Dette vil resultere i en skrivebeskyttet filsystemkontroll uten å berøre noe. Selvfølgelig er det ingen garanti for sikkerhet her, og du bør bare fortsette etter å ha opprettet en sikkerhetskopi. På et ext2 filsystem, kjører

 sudo fsck.ext2 -fn / path / to / your / partisjonen 

ville resultere i god produksjon - de fleste feilmeldinger som skyldes at partisjonen er montert. Til slutt vil det gi deg fragmenteringsrelatert informasjon.

Hvis fragmenteringen din er over 20%, bør du fortsette å defragmentere systemet.

Slik defragmenterer du Linux-filsystemer enkelt

Alt du trenger å gjøre er å sikkerhetskopiere alle filene dine og dataene til en annen stasjon (ved å kopiere dem manuelt manuelt), format partisjonen og kopiere filene dine tilbake (ikke bruk et reserveprogram for dette). Det journale filsystemet håndterer dem som nye filer og plasserer dem pent på disken uten fragmentering.

For å sikkerhetskopiere filene dine, kjør

 cp -afv [/ bane / til / kilde / partisjon] / * [/ bane / til / destinasjon / mappe] 

Husk asterixen (*); det er viktig.

Merk : Det er generelt enighet om at for å kopiere store filer eller store mengder data, kan kommandoen dd være best. Dette er et veldig lavt nivå operasjon og kopierer alt "som det er", inkludert det tomme rommet, og til og med søppelet over. Dette er ikke det vi ønsker, så det er sannsynligvis bedre å bruke cp .

Nå trenger du bare å fjerne alle opprinnelige filene.

 sudo rm -rf [/ path / til / source / partisjon] / * 

Valgfritt: Du kan fylle det tomme rommet med nuller. Du kan oppnå dette ved formatering, men hvis du for eksempel ikke kopierte hele partisjonen, er det bare store filer (som mest sannsynlig vil forårsake fragmentering), dette er kanskje ikke et alternativ.

 sudo dd hvis = / dev / null av = [/ path / til / source / partition] /temp-zero.txt 

Vent til den er ferdig. Du kan også overvåke fremdriften med pv.

 sudo apt-get install pv sudo pv -tpreb | av = [/ / til / kilde / skillevegg] /temp-zero.txt 

Når det er gjort, slett du bare den midlertidige filen.

 sudo rm [/path/to/source/partition]/temp-zero.txt 

Etter at du har nullstilt det tomme rommet (eller bare hoppet over det hele trinnet), kopier du filene tilbake, reverserer den første cp kommandoen:

 cp -afv [/ bane / til / original / destinasjon / mappe] / * [/ bane / til / original / kilde / partisjon] 

Bruke e4defrag

Hvis du foretrekker en enklere tilnærming, installerer du e2fsprogs,

 sudo apt-get install e2fsprogs 

og kjør e4defrag som rot på den e4defrag partisjonen. Hvis du ikke vil eller kan ikke avmontere partisjonen, kan du bruke monteringspunktet i stedet for banen. For å defragmentere hele systemet, kjør

 sudo e4defrag / 

Det er ikke garantert å lykkes mens montert (du bør også slutte å bruke systemet mens det kjører), men det er mye enklere enn å kopiere alle filer vekk og tilbake.

Konklusjon

Fragmentering bør sjelden være et problem på et Linux-system på grunn av det journale filsystemets effektiv databehandling. Hvis du kjører i fragmentering på grunn av noen omstendigheter, er det enkle måter å omfordele diskplassen din som å kopiere alle filer vekk og tilbake eller bruke e4defrag . Det er imidlertid viktig å holde dataene dine trygge, så før du forsøker en operasjon som vil påvirke alle eller de fleste av filene dine, må du sørge for at du tar sikkerhetskopiering bare for å være på den sikre siden.