Er is een algemene mythe dat Linux-schijven helemaal geen defragmentatie nodig hebben. In de meeste gevallen is dit waar, voornamelijk vanwege het uitstekende journaling bestandssysteem dat Linux gebruikt (ext2, 3, 4, btrfs, etc.) om het bestandssysteem te verwerken. In sommige specifieke gevallen kan fragmentatie echter nog steeds voorkomen. Als dat je overkomt, is de oplossing gelukkig heel eenvoudig.

Wat is fragmentatie?

Fragmentatie vindt plaats wanneer een bestandssysteem bestanden in kleine stukjes bijwerkt, maar deze brokken vormen geen aangrenzend geheel en zijn in plaats daarvan verspreid over de schijf. Dit geldt in het bijzonder voor FAT- en FAT32-bestandssystemen. Het was enigszins gematigd in NTFS en gebeurt bijna nooit in Linux (extX). Dit is waarom.

In bestandssystemen zoals FAT en FAT32 worden bestanden direct naast elkaar op de schijf geschreven. Er is geen ruimte over voor bestandsgroei of updates:

De NTFS laat iets meer ruimte tussen de bestanden, dus er is ruimte om te groeien. Omdat de ruimte tussen brokken beperkt is, zal fragmentatie in de loop van de tijd nog steeds voorkomen.

De journaling-bestandssystemen van Linux hebben een andere benadering. In plaats van bestanden naast elkaar te plaatsen, is elk bestand verspreid over de schijf, waardoor er royale hoeveelheden vrije ruimte tussen elk bestand overblijft. Er is voldoende ruimte voor bestandsupdates / groei en er treedt zelden fragmentatie op.

Bovendien, als er fragmentatie optreedt, zouden de meeste Linux-bestandssystemen proberen bestanden en chunks in willekeurige volgorde in willekeurige volgorde weer te geven.

Schijffragmentatie op Linux

Schijffragmentatie komt zelden voor in Linux, tenzij je een kleine harde schijf hebt of als er te weinig ruimte is. Enkele mogelijke versnipperingsgevallen zijn onder meer:

  • als u grote videobestanden of onbewerkte afbeeldingsbestanden bewerkt en de schijfruimte beperkt is
  • als je oudere hardware gebruikt zoals een oude laptop, en je hebt een kleine harde schijf
  • als uw harde schijven vol raken (meer dan 85% gebruikt)
  • als je veel kleine partities hebt die je thuismap verstoppen

De beste oplossing is om een ​​grotere harde schijf te kopen. Als dit niet mogelijk is, wordt defragmentatie hier handig.

Hoe te controleren op fragmentatie

De fsck opdracht zal dit voor je doen - dat wil zeggen, als je de mogelijkheid hebt om het vanaf een live-CD uit te voeren, met alle getroffen partities gedeactiveerd.

Dit is erg belangrijk: GEBRUIK VAN FSCK OP EEN GEMONTEERDE SCHEIDING KAN EN ZAL UW GEGEVENS EN UW SCHIJF IN ZELFSTANDIGHEID BESCHADIGEN.

Je bent gewaarschuwd. Maak een volledige systeemback-up voordat u doorgaat.

Disclaimer : De auteur van dit artikel en Make Tech Easier aanvaarden geen verantwoordelijkheid voor enige schade aan uw bestanden, gegevens, systeem of enige andere schade, veroorzaakt door uw acties na het volgen van dit advies. U kunt op eigen risico doorgaan. Als je doorgaat, accepteer en erken je dit.

Je moet gewoon opstarten in een live sessie (zoals een installatiediskette, systeemherstel-cd, enz.) En fsck op je UNMOUNTED- partities. Om te controleren op problemen, voert u de volgende opdracht uit met root-toestemming:

 fsck -fn [/ pad / naar / uw / partitie] 

Je kunt controleren wat [/path/to/your/partition] is door te draaien

 sudo fdisk -l 

Er is een manier om fsck (relatief) veilig uit te voeren op een gekoppelde partitie - dat wil zeggen door de -n switch te gebruiken. Dit resulteert in een alleen-lezen bestandssysteemcontrole zonder iets aan te raken. Natuurlijk is hier geen garantie voor veiligheid en moet u pas verder gaan nadat u een back-up hebt gemaakt. Op een ext2 bestandssysteem, actief

 sudo fsck.ext2 -fn / pad / naar / uw / partitie 

zou resulteren in een overvloed aan uitvoer - de meeste van hen foutmeldingen als gevolg van het feit dat de partitie is gemount. Uiteindelijk zal het je fragmentatiegerelateerde informatie geven.

Als uw fragmentatie hoger is dan 20%, moet u doorgaan met het defragmenteren van uw systeem.

Hoe Linux-bestandssystemen gemakkelijk te defragmenteren

Het enige wat u hoeft te doen is een back-up te maken van AL uw bestanden en gegevens op een andere schijf (door ze handmatig te kopiëren ), de partitie te formatteren en uw bestanden terug te kopiëren (gebruik hiervoor geen back-upprogramma). Het journalling-bestandssysteem behandelt ze als nieuwe bestanden en plaatst ze netjes op de schijf zonder fragmentatie.

Maak een back-up van uw bestanden

 cp-afv [/ pad / naar / bron / partitie] / * [/ pad / naar / doel / map] 

Let op de asterix (*); Het is belangrijk.

Opmerking : algemeen wordt overeengekomen dat het dd commando het beste is om grote bestanden of grote hoeveelheden gegevens te kopiëren. Dit is een bewerking op zeer laag niveau en kopieert alles "zoals het is", inclusief de lege ruimte en zelfs de overblijfselen die overblijven. Dit is niet wat we willen, dus het is waarschijnlijk beter om cp te gebruiken.

Nu hoeft u alleen alle originele bestanden te verwijderen.

 sudo rm -rf [/ pad / naar / bron / partitie] / * 

Optioneel: u kunt de lege ruimte vullen met nullen. Je zou dit ook met formatteren kunnen bereiken, maar als je bijvoorbeeld niet de hele partitie hebt gekopieerd, alleen grote bestanden (met de meeste kans op fragmentatie), dan is dit misschien geen optie.

 sudo dd if = / dev / zero of = [/ pad / naar / bron / partitie] /temp-zero.txt 

Wacht tot het klaar is. Je zou ook de voortgang kunnen volgen met pv.

 sudo apt-get install pv sudo pv -tpreb | of = [/ path / to / source / partitie] /temp-zero.txt 

Als het klaar is, verwijdert u gewoon het tijdelijke bestand.

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

Nadat u de lege ruimte hebt op nul gezet (of deze stap hebt overgeslagen), kopieert u uw bestanden terug en draait u de eerste opdracht cp om:

 cp -afv [/ pad / naar / origineel / doel / map] / * [/ pad / naar / origineel / bron / partitie] 

E4defrag gebruiken

Als u de voorkeur geeft aan een eenvoudigere methode, installeert u e2fsprogs,

 sudo apt-get install e2fsprogs 

en voer e4defrag als root uit op de betreffende partitie. Als u de partitie niet wilt of kunt ontkoppelen, kunt u het aankoppelpunt in plaats van het pad gebruiken. Om uw hele systeem te defragmenteren, uitvoeren

 sudo e4defrag / 

Het is niet gegarandeerd dat je slaagt tijdens het monteren (je zou ook moeten stoppen met het gebruiken van je systeem terwijl het draait), maar het is veel gemakkelijker dan alle bestanden weg en terug te kopiëren.

Conclusie

Fragmentatie zou zelden een probleem moeten zijn op een Linux-systeem vanwege de efficiënte gegevensverwerking door het journalling-bestandssysteem. Als je door omstandigheden toch fragmentatie e4defrag, zijn er eenvoudige manieren om je schijfruimte opnieuw toe te wijzen, zoals het kopiëren van alle bestanden weg en terug of het gebruik van e4defrag . Het is echter belangrijk om uw gegevens veilig te houden. Voordat u probeert een bewerking uit te voeren die van invloed is op alle of de meeste bestanden, moet u een back-up maken om de veiligheid te waarborgen.