Es gibt einen allgemeinen Mythos, dass Linux-Festplatten überhaupt keine Defragmentierung benötigen. In den meisten Fällen ist dies der Fall, hauptsächlich aufgrund der ausgezeichneten Journaling-Dateisysteme, die Linux verwendet (ext2, 3, 4, btrfs usw.), um das Dateisystem zu handhaben. In bestimmten Fällen kann jedoch eine Fragmentierung auftreten. Wenn Ihnen das passiert, ist die Lösung glücklicherweise sehr einfach.

Was ist Fragmentierung?

Die Fragmentierung tritt auf, wenn ein Dateisystem Dateien in kleinen Abschnitten aktualisiert, diese jedoch keine zusammenhängende Ganzzahl bilden und stattdessen auf der Festplatte verteilt sind. Dies gilt insbesondere für FAT- und FAT32-Dateisysteme. Es wurde etwas in NTFS gemildert und passiert fast nie in Linux (extX). Hier ist warum.

In Dateisystemen wie FAT und FAT32 werden Dateien direkt nebeneinander auf der Festplatte geschrieben. Es gibt keinen Platz mehr für Dateiwachstum oder Updates:

Das NTFS lässt etwas mehr Platz zwischen den Dateien, so dass Raum zum Wachsen ist. Da der Abstand zwischen den Blöcken begrenzt ist, wird die Fragmentierung immer noch im Laufe der Zeit auftreten.

Die Journaling-Dateisysteme von Linux verfolgen einen anderen Ansatz. Anstatt Dateien nebeneinander zu platzieren, wird jede Datei über die gesamte Festplatte verteilt, so dass zwischen jeder Datei großzügiger Freiraum bleibt. Es gibt genügend Platz für Dateiupdates / -wachstum und es kommt selten zu Fragmentierung.

Wenn eine Fragmentierung auftritt, versuchen die meisten Linux-Dateisysteme außerdem, Dateien und Chunks neu zu gruppieren, um sie wieder zusammenhängend zu machen.

Festplattenfragmentierung unter Linux

Festplattenfragmentierung tritt selten in Linux auf, es sei denn, Sie haben eine kleine Festplatte oder der Speicherplatz ist knapp. Einige mögliche Fragmentierungsfälle umfassen:

  • Wenn Sie große Videodateien oder Rohbilddateien bearbeiten, ist der Speicherplatz begrenzt
  • Wenn Sie ältere Hardware wie einen alten Laptop verwenden, und Sie haben eine kleine Festplatte
  • wenn Ihre Festplatten zu füllen beginnen (über 85% verwendet)
  • Wenn Sie viele kleine Partitionen haben, die Ihren Home-Ordner überfluten

Die beste Lösung ist, eine größere Festplatte zu kaufen. Wenn dies nicht möglich ist, wird hier die Defragmentierung nützlich.

So überprüfen Sie die Fragmentierung

Der fsck Befehl fsck das für Sie - das heißt, wenn Sie Gelegenheit haben, ihn von einer Live-CD auszuführen, wobei alle betroffenen Partitionen unmounted sind.

Das ist sehr wichtig: RUNNING FSCK AUF EINER MONTIERTEN PARTITION KANN UND WIRD IHRE DATEN UND DEINE DISKETTE SEHR SCHÄDIG SCHADEN.

Du wurdest gewarnt. Bevor Sie fortfahren, machen Sie eine vollständige System-Sicherung.

Haftungsausschluss : Der Autor dieses Artikels und Make Tech Easier übernehmen keine Verantwortung für Schäden an Ihren Dateien, Daten, Systemen oder anderen Schäden, die durch Ihre Handlungen nach der Befolgung dieses Hinweises verursacht wurden. Sie können auf eigenes Risiko vorgehen. Wenn Sie fortfahren, akzeptieren Sie dies und bestätigen Sie dies.

Sie sollten einfach in eine Live-Sitzung booten (wie eine Installationsdiskette, eine Systemrettungs-CD usw.) und fsck auf Ihren UNMUNTED- Partitionen ausführen . Führen Sie den folgenden Befehl mit root-Berechtigung aus, um nach Problemen zu suchen:

 fsck -fn [/ Pfad / zu / Ihrer / Partition] 

Sie können überprüfen, was der [/path/to/your/partition] ist, indem Sie laufen

 sudo fdisk -l 

Es gibt eine Möglichkeit, fsck (relativ) sicher auf einer gemounteten Partition auszuführen - also mit der -n . Dies führt zu einer Nur-Lese-Überprüfung des Dateisystems, ohne etwas zu berühren. Natürlich gibt es hier keine Sicherheitsgarantie und Sie sollten erst nach dem Erstellen eines Backups fortfahren. Auf einem ext2-Dateisystem läuft

 sudo fsck.ext2 -fn / pfad / zu / deiner / partition 

würde zu viel Ausgabe führen - die meisten von ihnen Fehlermeldungen aufgrund der Tatsache, dass die Partition bereitgestellt ist. Am Ende erhalten Sie Informationen zur Fragmentierung.

Wenn Ihre Fragmentierung über 20% liegt, sollten Sie mit der Defragmentierung Ihres Systems fortfahren.

Wie man Linux-Dateisysteme leicht defragmentiert

Sie müssen lediglich ALLE Ihre Dateien und Daten auf einem anderen Laufwerk sichern (indem Sie sie manuell kopieren ), die Partition formatieren und Ihre Dateien zurückkopieren (verwenden Sie hierfür kein Sicherungsprogramm). Das Journaling-Dateisystem behandelt sie als neue Dateien und fügt sie ohne Fragmentierung ordentlich auf die Festplatte ein.

Um Ihre Dateien zu sichern, führen Sie sie aus

 cp -afv [/ Pfad / zu / Quelle / Partition] / * [/ Pfad / zu / Ziel / Ordner] 

Achte auf das Sternchen (*); es ist wichtig.

Hinweis : Es ist allgemein anerkannt, dass zum Kopieren großer Dateien oder großer Datenmengen der Befehl dd am besten dd ist. Dies ist eine Operation auf sehr niedriger Ebene und kopiert alles "wie es ist", einschließlich des leeren Raums und sogar des übriggebliebenen Mülls. Dies ist nicht das, was wir wollen, also ist es wahrscheinlich besser, cp zu verwenden.

Jetzt müssen Sie nur alle Originaldateien entfernen.

 sudo rm -rf [/ Pfad / zu / Quelle / Partition] / * 

Optional: Sie können den leeren Platz mit Nullen füllen. Sie könnten dies auch mit Formatierung erreichen, aber wenn Sie zum Beispiel nicht die gesamte Partition kopiert haben, nur große Dateien (die am ehesten Fragmentierung verursachen), ist dies möglicherweise keine Option.

 sudo dd if = / dev / zero of = [/ Pfad / zu / source / Partition] /temp-zero.txt 

Warte bis es fertig ist. Sie könnten auch den Fortschritt mit pv. überwachen pv.

 sudo apt-get installieren pv sudo pv -tpreb | of = [/ Pfad / zu / Quelle / Partition] /temp-zero.txt 

Wenn Sie fertig sind, löschen Sie einfach die temporäre Datei.

 sudo rm [/pfad/zu/source/partition]/temp-zero.txt 

Nachdem Sie den leeren Bereich auf Null gesetzt haben (oder diesen Schritt vollständig übersprungen haben), kopieren Sie Ihre Dateien zurück und kehren den ersten cp Befehl um:

 cp -afv [/ Pfad / zu / Original / Ziel / Ordner] / * [/ Pfad / zu / Original / Quelle / Partition] 

Verwenden von e4defrag

Wenn Sie einen einfacheren Ansatz bevorzugen, installieren Sie e2fsprogs,

 sudo apt-get installieren e2fsprogs 

und führen Sie e4defrag als root auf der betroffenen Partition aus. Wenn Sie die Partition nicht trennen oder nicht trennen können, können Sie ihren Bereitstellungspunkt anstelle seines Pfads verwenden. Um dein gesamtes System zu defragmentieren, renne

 sudo e4defrag / 

Es kann nicht garantiert werden, dass es während der Bereitstellung erfolgreich ist (Sie sollten auch aufhören, Ihr System zu verwenden, während es ausgeführt wird), aber es ist viel einfacher als das Kopieren aller Dateien weg und zurück.

Fazit

Fragmentierung sollte auf dem Linux-System aufgrund der effizienten Datenverarbeitung durch das Journaling-Dateisystem selten ein Problem darstellen. Wenn Sie aus irgendwelchen e4defrag in eine Fragmentierung geraten, können Sie Ihren Speicherplatz auf einfache Weise neu e4defrag indem e4defrag alle Dateien weg- und zurückkopieren oder e4defrag . Es ist jedoch wichtig, dass Ihre Daten sicher sind. Bevor Sie also einen Vorgang ausführen, der alle oder die meisten Ihrer Dateien betrifft, stellen Sie sicher, dass Sie nur ein Backup erstellen, um auf der sicheren Seite zu sein.