Der er en fælles myte, at Linux-diske slet ikke behøver defragmentering. I de fleste tilfælde er dette sandt, skyldes for det meste de fremragende journaling-filsystemer, som Linux bruger (ext2, 3, 4, btrfs osv.) Til at håndtere filsystemet. I nogle specifikke tilfælde kan fragmentering dog stadig forekomme. Hvis det sker for dig, er løsningen heldigvis meget enkel.

Hvad er fragmentering?

Fragmentering opstår, når et filsystem opdaterer filer i små klumper, men disse klumper danner ikke en sammenhængende helhed og er spredt rundt om disken i stedet. Dette gælder især FAT og FAT32 filsystemer. Det blev mildnet noget i NTFS og foregår næsten aldrig i Linux (extX). Her er hvorfor.

I filsystemer som FAT og FAT32 er der skrevet filer lige ved siden af ​​hinanden på disken. Der er ikke plads til filvækst eller opdateringer:

NTFS efterlader noget mere plads mellem filerne, så der er plads til at vokse. Da mellemrummet mellem stykker er begrænset, vil fragmentering stadig forekomme over tid.

Linux journaling filsystemer tage en anden tilgang. I stedet for at placere filer ved siden af ​​hinanden er hver fil spredt over hele disken, hvilket giver generøse mængder ledig plads mellem hver fil. Der er nok plads til filopdateringer / vækst og fragmentering forekommer sjældent.

Hvis fragmentering også sker, vil de fleste Linux-filsystemer forsøge at blande filer og klumper rundt for at gøre dem tilgrænsende igen.

Disk fragmentering på Linux

Diskfragmentering forekommer sjældent i Linux, medmindre du har en lille harddisk, eller den løber tør for plads. Nogle mulige fragmenteringssager omfatter:

  • hvis du redigerer store videofiler eller råbilledfiler, og diskplads er begrænset
  • hvis du bruger ældre hardware som en gammel bærbar computer, og du har en lille harddisk
  • hvis dine harddiske begynder at fylde op (over 85% brugt)
  • hvis du har mange små partitioner cluttering din hjemmemappe

Den bedste løsning er at købe en større harddisk. Hvis det ikke er muligt, er det her, hvor defragmentering bliver nyttig.

Sådan kontrolleres fragmentering

fsck kommandoen vil gøre dette for dig - det vil sige hvis du har mulighed for at køre den fra en live-cd, med alle de berørte partitioner afmonteret.

Dette er meget vigtigt: RUNNING FSCK PÅ EN MONTERET DELITION KAN OG SKAL FORDELT SKADER DIN DATA OG DIN DISK.

Du er blevet advaret. Før du fortsætter, lav en fuld sikkerhedskopiering af systemet.

Ansvarsfraskrivelse : Forfatteren af ​​denne artikel og Make Tech Easier påtager sig intet ansvar for nogen skade på dine filer, data, system eller andre skader forårsaget af dine handlinger efter at have fulgt dette råd. Du kan fortsætte på egen risiko. Hvis du fortsætter, accepterer og anerkender du dette.

Du skal bare starte op i en live session (som en installationsdisk, systemrednings-cd osv.) Og køre fsck på dine UNMOUNTED partitioner. For at kontrollere eventuelle problemer skal du køre følgende kommando med root-tilladelse:

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

Du kan kontrollere, hvad [/path/to/your/partition] er ved at køre

 sudo fdisk -l 

Der er en måde at køre fsck (relativt) sikkert på en monteret partition - det vil sige ved at bruge -n kontakten. Dette vil resultere i en skrivebeskyttet filsystem check uden at røre ved noget. Selvfølgelig er der ingen garanti for sikkerhed her, og du bør kun fortsætte efter oprettelse af en backup. På et ext2 filsystem, der kører

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

ville resultere i masser af output - de fleste af dem fejlmeddelelser, der skyldes, at partitionen er monteret. I sidste ende vil det give dig fragmenteringsrelateret information.

Hvis din fragmentering er over 20%, skal du fortsætte med at defragmentere dit system.

Sådan nemt defragmenteres Linux-filsystemer

Alt du skal gøre er at sikkerhedskopiere ALLE dine filer og data til et andet drev (ved manuelt at kopiere dem), format partitionen og kopiere dine filer tilbage (brug ikke et sikkerhedskopieringsprogram til dette). Det journale filsystem håndterer dem som nye filer og placerer dem pænt på disken uden fragmentering.

For at sikkerhedskopiere dine filer skal du køre

 cp -afv [/ path / to / source / partition] / * [/ path / til / destination / folder] 

Husk asterixen (*); det er vigtigt.

Bemærk : Det er generelt aftalt, at du kan kopiere store filer eller store mængder data, hvis kommandoen dd er bedst. Dette er et meget lavt niveau operation og kopierer alt "som det er", inklusive det tomme rum og endda uønsket tilbage. Det er ikke det, vi ønsker, så det er nok bedre at bruge cp .

Nu skal du kun fjerne alle de originale filer.

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

Valgfrit: Du kan udfylde det tomme rum med nuller. Du kan også opnå dette ved formatering, men hvis du for eksempel ikke kopierede hele partitionen, er det kun store filer (som sandsynligvis vil forårsage fragmentering), dette er muligvis ikke en mulighed.

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

Vent til det er færdigt. Du kan også overvåge fremskridtet med pv.

 sudo apt-get install pv sudo pv -tpreb | af = [/ sti / til / kilde / partition] /temp-zero.txt 

Når det er færdigt, skal du bare slette den midlertidige fil.

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

Når du har nulstillet det tomme rum (eller bare sprunget over det pågældende trin helt), kopier dine filer tilbage og vend den første cp kommando:

 cp -afv [/ path / til / original / destination / mappe] / * [/ path / to / original / source / partition] 

Brug af e4defrag

Hvis du foretrækker en enklere tilgang, skal du installere e2fsprogs,

 sudo apt-get install e2fsprogs 

og kør e4defrag som root på den berørte partition. Hvis du ikke vil eller kan ikke afmontere partitionen, kan du bruge dens monteringspunkt i stedet for dens sti. For at defragmentere hele dit system skal du køre

 sudo e4defrag / 

Det er ikke garanteret at lykkes, mens det er monteret (du skal også stoppe med at bruge dit system, mens det kører), men det er meget nemmere end at kopiere alle filer væk og tilbage.

Konklusion

Fragmentering bør sjældent være et problem på et Linux-system på grund af det journale filsystems effektive databehandling. Hvis du kører i fragmentering på grund af omstændighederne, er der enkle måder at omfordele dit diskplads som at kopiere alle filer væk og tilbage eller bruge e4defrag . Det er dog vigtigt at holde dine data sikre, så før du forsøger en handling, der vil påvirke alle eller de fleste af dine filer, skal du sørge for at lave en sikkerhedskopi for at være på den sikre side.